Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package guiclass;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.FlowLayout;
- import java.awt.GraphicsConfiguration;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.table.DefaultTableModel;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.transform.Result;
- import javax.xml.transform.Source;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- import org.w3c.dom.*;
- import org.xml.sax.SAXException;
- public class GuiClass extends JFrame implements ActionListener {
- /* +++ DEKLARACJA ELEMENTOW +++ */
- JPanel panelGlowny, panelDanych, panelTabeli, panelPrzyciskow;
- JLabel etykietaNazwa, etykietaX, etykietaY;
- JTextField pTekstoweNazwa, pTekstoweX, pTekstoweY;
- JTable tabela;
- DefaultTableModel modelTabeli;
- JButton przyciskDodaj;
- JButton przyciskWczytajXML;
- JButton przyciskZapiszXML;
- Container zawartosc;
- ArrayList<Wektory> kolekcja;
- public GuiClass(GraphicsConfiguration gc) {
- super(gc);
- }
- public GuiClass() {
- //Ustawienia okna
- super("Wektory");
- this.setSize(800, 600);
- this.zawartosc = this.getContentPane(); //pobiera zawartosc ramki
- kolekcja = new ArrayList<Wektory>();
- /* +++ TWORZENIE ELEMENTOW +++ */
- //tworzenie panelow
- this.panelGlowny = new JPanel(new BorderLayout()); //stworzenie Panelu gl
- this.panelDanych = new JPanel(new GridLayout(3, 2)); //stworzenie Panelu danych
- this.panelPrzyciskow = new JPanel(new FlowLayout());
- this.panelTabeli = new JPanel(new BorderLayout()); //stworzenie Panelu Tabeli
- this.modelTabeli = new DefaultTableModel(); //stworzenie Stylu tabeli
- //tworzenie etykiet
- this.etykietaNazwa = new JLabel("Nazwa Wektora: ");
- this.etykietaX = new JLabel("Wsp. X: ");
- this.etykietaY = new JLabel("Wsp Y: ");
- //tworzenie pol tekstowych
- this.pTekstoweNazwa = new JTextField();
- this.pTekstoweX = new JTextField();
- this.pTekstoweY = new JTextField();
- //Tworzenie przycisku
- this.przyciskDodaj = new JButton("Dodaj");
- this.przyciskDodaj.addActionListener(this);
- this.przyciskWczytajXML = new JButton("Wczytaj XML");
- this.przyciskWczytajXML.addActionListener(this);
- this.przyciskZapiszXML = new JButton("Zapisz XML");
- this.przyciskZapiszXML.addActionListener(this);
- /* +++ DODAWANIE ELEMENTOW +++ */
- //Dodawanie elementow do tabeli
- this.modelTabeli.addColumn("Nazwa Wektora");
- this.modelTabeli.addColumn("Wsp. X");
- this.modelTabeli.addColumn("Wsp. Y");
- this.tabela = new JTable(this.modelTabeli);
- //Dodanie Panelow
- this.zawartosc.add(this.panelGlowny);
- this.panelGlowny.add(this.panelDanych, BorderLayout.WEST);
- this.panelGlowny.add(this.panelPrzyciskow, BorderLayout.SOUTH);
- this.panelGlowny.add(this.panelTabeli, BorderLayout.CENTER);
- this.panelTabeli.add(new JScrollPane(this.tabela), BorderLayout.CENTER);
- //Dodanie pol etykiet i pol tekstowych
- this.panelDanych.add(this.etykietaNazwa);
- this.panelDanych.add(this.pTekstoweNazwa);
- this.panelDanych.add(this.etykietaX);
- this.panelDanych.add(this.pTekstoweX);
- this.panelDanych.add(this.etykietaY);
- this.panelDanych.add(this.pTekstoweY);
- //Dodawanie przycisku
- this.panelPrzyciskow.add(this.przyciskDodaj);
- this.panelPrzyciskow.add(this.przyciskWczytajXML);
- this.panelPrzyciskow.add(this.przyciskZapiszXML);
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.setVisible(true);
- }
- public static void main(String[] args) {
- GuiClass obiekt = new GuiClass();
- }
- /* +++ OBSŁUGA ELEMENTOW +++ */
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("Dodaj")) {
- Wektory w1 = new Wektory(pTekstoweNazwa.getText(), Integer.parseInt(this.pTekstoweX.getText()), Integer.parseInt(this.pTekstoweY.getText()));
- Object[] tablicaDanych = new Object[3];
- tablicaDanych[0] = w1.getNazwaWektora();
- tablicaDanych[1] = w1.getWspX();
- tablicaDanych[2] = w1.getWspY();
- kolekcja.add(w1);
- this.modelTabeli.addRow(tablicaDanych);
- }
- if (e.getActionCommand().equals("Wczytaj XML")) {
- try {
- DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = fabr.newDocumentBuilder();
- Document dokument = parser.parse("C:\\Users\\student.INFORMATYKA\\Documents\\GuiClass\\simple.xml");
- Element root = dokument.getDocumentElement(); //pobiera el. gl. //<wektory>
- NodeList linie = root.getElementsByTagName("wektor");
- for (int i = 0; i < linie.getLength(); i++) {
- String nazwa = ((Element) linie.item(i)).getAttribute("nazwa");
- int wX = Integer.parseInt(((Element) linie.item(i)).getAttribute("x"));
- int wY = Integer.parseInt(((Element) linie.item(i)).getAttribute("y"));
- Wektory w1 = new Wektory(nazwa, wX, wY); //tworzenie nowego obiektu
- Object[] tablicaDanych = new Object[3];
- tablicaDanych[0] = nazwa;
- tablicaDanych[1] = wX;
- tablicaDanych[2] = wY;
- kolekcja.add(w1);
- this.modelTabeli.addRow(tablicaDanych);
- }
- } catch (Exception ex) {
- }
- }
- if (e.getActionCommand().equals("Zapisz XML")) {
- try {
- DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = fabr.newDocumentBuilder();
- Document dokument = parser.newDocument();
- Element root = dokument.createElement("wektory");
- dokument.appendChild(root);
- for (Wektory w : kolekcja) {
- Element k = dokument.createElement("wektor");
- k.setAttribute("nazwa", w.getNazwaWektora());
- k.setAttribute("x", String.valueOf(w.getWspX()));
- k.setAttribute("y", String.valueOf(w.getWspY()));
- root.appendChild(k);
- }
- Transformer przekszt=TransformerFactory.newInstance().newTransformer();
- Source zrodlo=new DOMSource(dokument);
- Result wyjscie=new StreamResult("test.xml");
- przekszt.transform(zrodlo, wyjscie);
- } catch (Exception ex) {
- }
- }
- }
- }
- /*
- !!! Zrobic interfejs !!!
- a) pola tekstowe do wprowadzania danych + etykiety
- b) utworzyc tabele z danymi
- c) przyciski "dodaj"
- //Ma sie utworzyc nowy obiekt + wpis do tabeli
- //JFrame na zewnatrz
- //JPanel w srodku i zagniezdzone
- //JLabel - etyki
- //JTextField - area txt
- //JButton - przycisk
- //JTable - tabela // + klasa DefaultTableModel
- */
- // ================================================== //
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package guiclass;
- import java.util.ArrayList;
- /**
- *
- * @author student
- */
- public class Wektory {
- private String nazwaWektora;
- private int wspX, wspY;
- public String getNazwaWektora() {
- return nazwaWektora;
- }
- public void setNazwaWektora(String nazwaWektora) {
- this.nazwaWektora = nazwaWektora;
- }
- public int getWspX() {
- return wspX;
- }
- public void setWspX(int wspX) {
- this.wspX = wspX;
- }
- public int getWspY() {
- return wspY;
- }
- public void setWspY(int wspY) {
- this.wspY = wspY;
- }
- public Wektory(String nazwaWektora, int wspX, int wspY) {
- this.nazwaWektora = nazwaWektora;
- this.wspX = wspX;
- this.wspY = wspY;
- }
- }
Add Comment
Please, Sign In to add comment