Adatkezelés JDBC-vel
1
abkezel.java
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp, jp1, jp2, jp3, jp4; private JButton blist, bbeszur, bmodosit, btorol, bcreate, binsert, bkapcsell; JLabel pct; static Connection conn = null; //Üres kapcsolat változó static Statement s = null; //Üres kifejezés változó static PreparedStatement ps = null; //Üres paraméteres kifejezés változó static ResultSet rs = null; //Üres cursor változó static String user="tanuló"; //User megadása static String pswd="tanuló"; //Jelszó megadása static String bm="BitMan mondja:"; //Üzenet panel felirata private static Autm dtmp; //Tábla modell kiíráshoz private static Autmj ttmp; //Tábla modell kijelöléshez public abkezel() { setTitle("BitMan mondja"); setSize(400,240); setLocationRelativeTo(null); dp = new JPanel(); dp.setLayout(null); this.getContentPane().add(dp); jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jp4 = new JPanel();
jp1.setLayout(null);
//Program neve //Ablak mérete //Ablak kerüljön középre //Panel létrehozása //Nincs tartalom elrendezés //Panel hozzáadása az ablakhoz (frame-hez)
Adatkezelés JDBC-vel
blist = new JButton(); //Nyomógomb blist.setText("Lista"); //Nyomógomb felirata jp1.add(blist); blist.setBounds(10,30,100,20); //Nyomógomb helye, mérete blist.addActionListener( new ActionListener() { //Nyomógombhoz akciókezelő public void actionPerformed( ActionEvent e ) { Object Mezonevekp[] = {"Azon.", "Rendszám", "Típus", "Szín", "Kor", "Ár"}; dtmp = new Autm( Mezonevekp,0 ); //Táblafej létrehozása, mezőnevekkel Kapcs(user, pswd); //Kapcsolódás, létező táblatartalom törlése if (dtmp.getRowCount()>0) for (int i=0; i < dtmp.getRowCount(); i++) {dtmp.removeRow(i);i--;} AutoLista(); //Táblatartalom betöltése Lekapcs(); Point bs = getLocation(); int bsx = (int)bs.getX(); int bsy = (int)bs.getY(); //Helymeghatározás AuKiir ak = new AuKiir(null, dtmp, bsx, bsy); //Példányosítás ak.setVisible(true); //Megjelenítés } }); bbeszur = new JButton(); bbeszur.setText("Beszúrás"); jp1.add(bbeszur); bbeszur.setBounds(10,60,100,20); bbeszur.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Point bs = getLocation(); int bsx = (int)bs.getX(); int bsy = (int)bs.getY(); AuBe us = new AuBe(null, bsx, bsy);us.setVisible(true); if (us.kiLep()==2){ //Visszaadott érték vizsgálat try { //Parancs megfogalmazása String sqlp = "insert into auto (azon, rendszam, tipus, szin, kor, ar) values (?, ?, ?, ?, ?, ?)"; Kapcs(user, pswd); //Kapcsolódás ps = conn.prepareStatement(sqlp); //Kifejezés előkészítés ps.setString(1, us.getAzon()); //Paraméterek kötése típus és //sorrend szerint ps.setString(2, us.getRsz()); ps.setString(3, us.getTip()); ps.setString(4, us.getSzin()); ps.setInt(5, us.getKor()); ps.setInt(6, us.getAr()); ps.executeUpdate(); //Parancs végrehajtása ps.close(); //Kifejezés lezárása Lekapcs(); //Kapcsolat lezárása JOptionPane.showMessageDialog(null,"Rekord! Beszúrva! ",bm,2); //Üzenet kiírása } catch(Exception ex) { JOptionPane.showMessageDialog(null,"SQL hiba: "+ex.getMessage(),bm,2);} } }
2
Adatkezelés JDBC-vel
}); Object Mezonevekt[] = {"Jel","Azon.", "Rendszám", "Típus", "Szín", "Kor", "Ár"}; ttmp = new Autmj( Mezonevekt,0 ); bmodosit = new JButton(); bmodosit.setText("Módosítás"); jp1.add(bmodosit); bmodosit.setBounds(10,90,100,20); bmodosit.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Kapcs(user, pswd); if (ttmp.getRowCount()>0) for (int i=0; i < ttmp.getRowCount(); i++) {ttmp.removeRow(i);i--;} AutoListaJel(); Lekapcs(); Point bs = getLocation(); int bsx = (int)bs.getX(); int bsy = (int)bs.getY(); AuMod am = new AuMod(null, ttmp, bsx, bsy); am.setVisible(true); if (am.kiLep() == 2) { Kapcs(user, pswd); if (am.getRsz().length() > 0) AutoUpdate("rendszam='"+am.getRsz()+ "' where azon= '"+(String)ttmp.getValueAt(am.getJel(),1)+"'"); if (am.getTip().length() > 0) AutoUpdate("tipus='"+am.getTip()+ "' where azon= '"+(String)ttmp.getValueAt(am.getJel(),1)+"'"); if (am.getSzin().length() > 0) AutoUpdate("szin='"+am.getSzin()+ "' where azon= '"+(String)ttmp.getValueAt(am.getJel(),1)+"'"); if (am.getKor().length() > 0) AutoUpdate("Kor="+am.getKor()+ " where azon= '"+(String)ttmp.getValueAt(am.getJel(),1)+"'"); if (am.getAr().length() > 0) AutoUpdate("ar="+am.getAr()+ " where azon= '"+(String)ttmp.getValueAt(am.getJel(),1)+"'"); } //Ha a mező hossza nem nulla: UPDATE mező=visszakapott érték, //ahol az azonosító a megjelölt sor első eleme } }); btorol = new JButton(); btorol.setText("Törlés"); jp1.add(btorol); btorol.setBounds(10,120,100,20); btorol.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Kapcs(user, pswd); if (ttmp.getRowCount()>0) for (int i=0; i < ttmp.getRowCount(); i++) {ttmp.removeRow(i);i--;} AutoListaJel(); Lekapcs(); Point bs = getLocation(); int bsx = (int)bs.getX(); int bsy = (int)bs.getY(); AuTorol at = new AuTorol(null, ttmp, bsx, bsy); at.setVisible(true); if (at.kiLep() == 2) {
3
Adatkezelés JDBC-vel
4
int db=0; Kapcs(user, pswd); for(int x = 0; x < ttmp.getRowCount(); x++)//Végigmegyünk a táblázat sorain if (at.getJel(x)) { //Ha a sor meg van jelölve AutoTorol((String)ttmp.getValueAt(x,1)); //Törli a rekordot az azonosító alapján db++; } Lekapcs(); JOptionPane.showMessageDialog(null,db+" rekord törölve!",bm,2); } } }); pct = new JLabel(); pct.setIcon(new ImageIcon("auto.jpg")); jp1.add(pct); pct.setBounds(140,20,200,136);
//Kép megjelenítése //Kép elérési helye (aktuális könyvtár), neve //Kép helye, mérete
jp4.setLayout(null); bkapcsell = new JButton(); bkapcsell.setText("Kapcsolat ellenőrzése"); jp4.add(bkapcsell); bkapcsell.setBounds(10,30,170,20); bkapcsell.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Kapcs(user, pswd); if (conn != null ) {JOptionPane.showMessageDialog(null,"Kapcsolat rendben!",bm,2);} else {JOptionPane.showMessageDialog(null,"Kapcsolat hiba!",bm,2);} Lekapcs(); JOptionPane.showMessageDialog(null,"Kapcsolat bontva!",bm,2); } });
bkapcsell = new JButton(); bkapcsell.setText("Autó tábla Létrehozása"); jp4.add(bkapcsell); bkapcsell.setBounds(10,60,170,20); bkapcsell.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Kapcs(user, pswd); AutoCreate(); Lekapcs(); } });
Adatkezelés JDBC-vel
5
binsert = new JButton(); binsert.setText("Autó tábla Feltöltése"); jp4.add(binsert); binsert.setBounds(10,90,170,20); binsert.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Kapcs(user, pswd); AutoInsert(); Lekapcs(); } }); jtp = new JTabbedPane(); jtp.addTab("Autó", jp1); jtp.addTab("Tulajdonos", jp2); jtp.addTab("Napló", jp3); jtp.addTab("Extrák", jp4); dp.add(jtp); jtp.setBounds(10,10,372,200);
//Füles panel létrehozása //Fül hozzáadása: (Panel neve, változója)
//Füles panel helye az ablakban
} public static void Kapcs(String user, String pswd){ //---------------------Kapcsolódás try { String url = "jdbc:oracle:thin:@193.6.5.42:1521:info"; //"jdbc:oracle:thin:@localhost:1521:XE"; conn = DriverManager.getConnection(url, user, pswd); } catch(Exception ex) {JOptionPane.showMessageDialog(null,"Kapcsolódási hiba: "+ex.getMessage(),bm,2); } } public static void Lekapcs(){ //---------------------Lekapcsolódás try {conn.close(); } catch(Exception ex) {JOptionPane.showMessageDialog(null,"Kapcsolat lezárási hiba: "+ex.getMessage(),bm,2); } } public static void AutoLista(){ //-------------------Autók adatainak beolvasása String az="", rsz="", tip="", sz=""; int kor=0, ar=0; String sqlp= "select * from auto"; try { s = conn.createStatement(); s.executeQuery(sqlp); rs = s.getResultSet(); while(rs.next()) { az = rs.getString("AZON").trim(); //-----getString rsz = rs.getString("RENDSZAM").trim(); tip = rs.getString("TIPUS").trim(); sz = rs.getString("SZIN").trim(); kor = rs.getInt("KOR"); //-----getInt
Adatkezelés JDBC-vel
ar = rs.getInt("AR"); dtmp.addRow(new Object[ ]{ az, rsz, tip, sz, kor, ar});
6 //Sor beszúrása a táblázatba
} rs.close(); } catch(Exception e) {JOptionPane.showMessageDialog(null, "Nem sikerült betölteni az adatokat!"+e.getMessage(), bm, 2); } } public static void AutoListaJel(){ //----------Autók adatainak beolvasása jelölhető módon String az="", rsz="", tip="", sz=""; int kor=0, ar=0; String sqlp= "select * from auto"; try { s = conn.createStatement(); s.executeQuery(sqlp); rs = s.getResultSet(); while(rs.next()) { az = rs.getString("AZON").trim(); rsz = rs.getString("RENDSZAM").trim(); tip = rs.getString("TIPUS").trim(); sz = rs.getString("SZIN").trim(); kor = rs.getInt("KOR"); ar = rs.getInt("AR"); ttmp.addRow(new Object[]{ new Boolean(false), az, rsz, tip, sz, kor, ar}); } rs.close(); } catch(Exception e) {JOptionPane.showMessageDialog(null, "Nem sikerült betölteni az adatokat!"+e.getMessage(), bm, 2); } } public static void AutoTorol(String az){ //--------------------------Autók törlése String sqlp="delete from auto where azon = '"+az+"'"; try { s = conn.createStatement(); s.executeUpdate(sqlp); } catch(Exception e) { JOptionPane.showMessageDialog(null, "Nem sikerült törölni az adatokat!"+e.getMessage(), bm, 2); } } public static void AutoUpdate(String adat){ //------------------Autó módosítás String sqlp="update auto set "+adat; try { s = conn.createStatement(); s.executeUpdate(sqlp); } catch(Exception e) { JOptionPane.showMessageDialog(null, "Nem sikerült módisítani az adatokat!"+e.getMessage(), bm, 2); } }
Adatkezelés JDBC-vel
7
public void AutoCreate(){ //---------------------------------Autó tábla létrehozása String sqlp="create table auto(azon char(4) NOT NULL,rendszam char(7),tipus char(20),szin char(14),kor number(2),ar number(8),CONSTRAINT auto_pk PRIMARY KEY (azon))"; System.out.println("Kiadott SQL parancs: "+sqlp); try { s = conn.createStatement(); s.executeUpdate(sqlp); JOptionPane.showMessageDialog(null,"Autó tábla létrehozva!",bm,2); } catch(Exception e) { JOptionPane.showMessageDialog(null, "Nem sikerült törölni az adatokat!"+e.getMessage(), bm, 2); } } public void AutoInsert(){ //---------------------------------Autó adatfeltöltés String sqlp1="insert into auto values ('A001','WRF-834','Hyundai i30','fehér',1,2300000)"; String sqlp2="insert into auto values ('A002','KGB-007','Mercedes ML520','fekete',3,7500000)"; String sqlp3="insert into auto values ('A003','ART-985','Opel Astra','piros',8,900000)"; String sqlp4="insert into auto values ('A004','BZM-922','Lada Samara','szürke',18,150000)"; String sqlp5="insert into auto values ('A005','DER-300','Opel Corsa','piros',7,600000)"; try { s = conn.createStatement(); s.executeUpdate(sqlp1); s.executeUpdate(sqlp2); s.executeUpdate(sqlp3); s.executeUpdate(sqlp4); s.executeUpdate(sqlp5); } catch(Exception e) { JOptionPane.showMessageDialog(null, "Nem sikerült módisítani az adatokat!"+e.getMessage(), bm, 2); } } public void MetaAdatok(String TableName){ //------------------- Tábla metaadatok Object mn[] = {"Mezőnév", "Típus", "Méret", "Null adat"}; dtmpM = new AutmM( mn, 0 ); Kapcs(user, pswd); if (dtmpM.getRowCount()>0) for (int i=0; i < dtmpM.getRowCount(); i++) {dtmpM.removeRow(i);i--;} try { DatabaseMetaData meta = conn.getMetaData(); ResultSet res = meta.getColumns(null, null, TableName, null); while (res.next()) { dtmpM.addRow(new Object[]{res.getString("COLUMN_NAME"), res.getString("TYPE_NAME"), res.getInt("COLUMN_SIZE"), res.getString("NULLABLE")}); } ResultSet rs2 = meta.getPrimaryKeys(null, null, TableName); boolean PKYes = false; while(rs2.next()){ String PKName = rs2.getString(4); dtmpM.addRow(new Object[]{PKName, "Primary KEY", "", ""}); PKYes=true;
Adatkezelés JDBC-vel
} if (!PKYes) dtmpM.addRow(new Object[]{"Nincs a táblában", "Primary KEY", "", ""}); rs2 = meta.getExportedKeys(null, null, TableName); boolean FKYes = false; while(rs2.next()){ String FKName = rs2.getString(4); dtmpM.addRow(new Object[]{FKName, "Foreign KEY", "", ""}); FKYes=true; } if (!FKYes) dtmpM.addRow(new Object[]{"Nincs a táblában", "Foreign KEY", "", ""}); } catch(Exception e) { JOptionPane.showMessageDialog(null, "MetaAdatok HIBA: "+e.getMessage(), bm, 2); } Lekapcs(); Point bs = getLocation(); int bsx = (int)bs.getX(); int bsy = (int)bs.getY(); AuMeta am = new AuMeta(null, dtmpM, bsx, bsy); am.setVisible(true); }
public static void main(String[ ] args) { abkezel gk = new abkezel(); gk.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); gk.setVisible(true); } } Az Extrák panel:
8
Adatkezelés JDBC-vel
Autók adatainak beolvasása beszúráshoz:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class AuBe extends JDialog implements ActionListener{ private JTextField ek1, ek2, ek3, ek4, ek5, ek6; private JPanel dp; private JButton bo; private String bm="BitMan mondja:"; private int kilep=0; public AuBe (JDialog f, int bsx, int bsy) { super(f,"Autó beszúrás",true); setBounds(bsx+25,bsy+30,350,280); dp = new JPanel(); dp.setLayout(null); this.getContentPane().add( dp); JLabel l1 = new JLabel("Azonosító:"); dp.add(l1); l1.setBounds(20,20,60,20); ek1 = new JTextField("",10); dp.add(ek1); ek1.setBounds(120,20,80,20); JLabel l1a = new JLabel("Max.: 4 karakter!"); dp.add(l1a); l1a.setBounds(210,20,120,20); JLabel l2 = new JLabel("Rendszám:"); dp.add(l2); l2.setBounds(20,50,100,20); ek2 = new JTextField("",10); dp.add(ek2); ek2.setBounds(120,50,80,20); JLabel l2a = new JLabel("ABC-123 alakban!"); dp.add(l2a);
9
Adatkezelés JDBC-vel
10
l2a.setBounds(210,50,120,20); JLabel l3 = new JLabel("Típus:"); dp.add(l3); l3.setBounds(20,80,100,20); ek3 = new JTextField("",10); dp.add(ek3); ek3.setBounds(120,80,200,20); JLabel l4 = new JLabel("Szín:"); dp.add(l4); l4.setBounds(20,110,100,20); ek4 = new JTextField("",10); dp.add(ek4); ek4.setBounds(120,110,100,20); JLabel l5 = new JLabel("Kor:"); dp.add(l5); l5.setBounds(20,140,100,20); ek5 = new JTextField("",10); dp.add(ek5); ek5.setBounds(120,140,30,20); ek5.setHorizontalAlignment(JTextField.RIGHT); JLabel l6 = new JLabel("Ár:"); dp.add(l6); l6.setBounds(20,170,100,20); ek6 = new JTextField("",10); dp.add(ek6); ek6.setBounds(120,170,80,20); ek6.setHorizontalAlignment(JTextField.RIGHT); bo = new JButton(); bo.setText(" OK"); dp.add(bo); bo.setBounds(145,210,60,30); bo.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { if (ek1.getText().length() == 0) {JOptionPane.showMessageDialog(null, "Hiányzó AZONOSÍTÓ!",bm,2);} else if (ek2.getText().length() == 0) {JOptionPane.showMessageDialog(null, "Hiányzó RENDSZÁM!",bm,2);} else if (ek3.getText().length() == 0) {JOptionPane.showMessageDialog(null, "Hiányzó TÍPUS!",bm,2);} else if (ek4.getText().length() == 0) {JOptionPane.showMessageDialog(null, "Hiányzó SZÍN!",bm,2);} else if (!joSzam(ek5.getText())) {JOptionPane.showMessageDialog(null, "Hibásan beírt KOR!",bm,2);} else if (!joSzam(ek6.getText())) {JOptionPane.showMessageDialog(null, "Hibásan beírt ÁR!",bm,2);}
Adatkezelés JDBC-vel
11
else { kilep=2; this.dispose(); setVisible(false); } } public boolean joSzam(String i){ //----------------------------Jószám? try {Integer.parseInt(i); return true; } catch(NumberFormatException nfe) {return false;} } public String getAzon(){return ek1.getText();} public String getRsz(){return ek2.getText();} public String getTip(){return ek3.getText();} public String getSzin(){return ek4.getText();} public int getKor(){return Integer.parseInt(ek5.getText());} public int getAr(){return Integer.parseInt(ek6.getText());} public int kiLep(){return kilep;} } ====================================================================== Autó táblamodell kijelöléshez: import javax.swing.table.DefaultTableModel; public class Autmj extends DefaultTableModel { public Autmj (Object Mezonevek[], int rows){ super(Mezonevek, rows); } @Override public boolean isCellEditable(int row, int col) { if (col == 0) {return true;} return false; } @Override public Class> getColumnClass(int index){ if(index==0){return(Boolean.class);} if(index > 4){return(Integer.class);} return(String.class); } } Adatok módosítása:
//Módosíthatóság megadása
//Oszlopok típusának megadása //Logikai //Egész //Szöveg
Adatkezelés JDBC-vel
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; public class AuMod extends JDialog implements ActionListener{ private JPanel dp; private JButton bo,bs; private Autmj dtmp1; private int kilep=0; private JTextField ek1, ek2, ek3, ek4, ek5; static String bm="BitMan mondja:"; static int jel=0; public AuMod(JFrame f, Autmj dtmp, int bsx, int bsy) { super(f,"Autó tábla - adatkiírás",true); dtmp1=dtmp; setBounds(bsx-30,bsy+30,460,245); dp = new JPanel(); dp.setLayout(null); this.getContentPane().add(dp); JLabel l1 = new JLabel("Jelölje ki a módosítandó autót, és töltse ki a módosítandó mezőket!"); dp.add(l1); l1.setBounds(10,5,450,20); JTable table = new JTable( dtmp1 ); TableColumn column = null; for (int i = 0; i < 7; i++) { column = table.getColumnModel().getColumn(i); if (i == 0) {column.setPreferredWidth(40);} else if (i == 1) {column.setPreferredWidth(50);} else if (i == 2) {column.setPreferredWidth(90);} else if (i == 3) {column.setPreferredWidth(170);} else if (i == 4) {column.setPreferredWidth(70);} else if (i == 5) {column.setPreferredWidth(40);} else {column.setPreferredWidth(100);}
12
Adatkezelés JDBC-vel
} JScrollPane sp; sp = new JScrollPane(table); dp.add(sp); sp.setBounds(10,30,430,125); JLabel l2 = new JLabel("Új adatok:"); dp.add(l2); l2.setBounds(10,160,70,20); ek1 = new JTextField("",10); dp.add(ek1); ek1.setBounds(82,160,63,20); ek2 = new JTextField("",10); dp.add(ek2); ek2.setBounds(147,160,118,20); ek3 = new JTextField("",10); dp.add(ek3); ek3.setBounds(267,160,51,20); ek4 = new JTextField("",10); dp.add(ek4); ek4.setBounds(320,160,33,20); ek4.setHorizontalAlignment(JTextField.RIGHT); ek5 = new JTextField("",10); dp.add(ek5); ek5.setBounds(355,160,70,20); ek5.setHorizontalAlignment(JTextField.RIGHT); bo = new JButton(); bo.setText("Módosít"); dp.add(bo); bo.setBounds(140,190,80,20); bo.addActionListener( this ); bs = new JButton(); bs.setText("Mégse"); dp.add(bs); bs.setBounds(230,190,80,20); bs.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { if (e.getSource() == this.bo) { int db=0, x=0; for(x = 0; x < dtmp1.getRowCount(); x++) if ((Boolean)dtmp1.getValueAt(x,0)) {db++; jel=x;}
13
Adatkezelés JDBC-vel
14
if (db==0) JOptionPane.showMessageDialog(null, "Egy adatsort ki kell jelölni!", bm, 2); if (db>1) JOptionPane.showMessageDialog(null, "Csak egy adatsort jelöljön ki!", bm, 2); if (db==1) { if (ek4.getText().length() > 0 && !joSzam(ek4.getText())) {JOptionPane.showMessageDialog(null, "Hibásan beírt KOR!",bm,2);} else if (ek5.getText().length() > 0 && !joSzam(ek5.getText())) {JOptionPane.showMessageDialog(null, "Hibásan beírt ÁR!",bm,2);} else {kilep=2; this.dispose(); setVisible(false);} } } if (e.getSource() == this.bs) {kilep=3; this.dispose(); setVisible(false);} } public boolean joSzam(String i){ //----------------------------Jószám? try {Integer.parseInt(i); return true; } catch(NumberFormatException nfe) {return false;} } public int kiLep(){return kilep;} public int getJel(){return jel;} public String getRsz(){return ek1.getText();} public String getTip(){return ek2.getText();} public String getSzin(){return ek3.getText();} public String getKor(){return ek4.getText();} public String getAr(){return ek5.getText();} } ====================================================================== Autók törlése:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; public class AuTorol extends JDialog implements ActionListener{
Adatkezelés JDBC-vel
private JPanel dp; private JButton bo,bs; private Autmj dtmp1; private int kilep=0; public AuTorol(JFrame f, Autmj dtmp, int bsx, int bsy) { super(f,"Autó tábla - adatkiírás",true); dtmp1=dtmp; setBounds(bsx-30,bsy+30,460,245); dp = new JPanel(); dp.setLayout(null); this.getContentPane().add(dp); JLabel l1 = new JLabel("Jelölje ki a törlendő autókat!"); dp.add(l1); l1.setBounds(10,5,260,20); JTable table = new JTable( dtmp1 ); TableColumn column = null; for (int i = 0; i < 7; i++) { column = table.getColumnModel().getColumn(i); if (i == 0) {column.setPreferredWidth(40);} else if (i == 1) {column.setPreferredWidth(50);} else if (i == 2) {column.setPreferredWidth(90);} else if (i == 3) {column.setPreferredWidth(170);} else if (i == 4) {column.setPreferredWidth(70);} else if (i == 5) {column.setPreferredWidth(40);} else {column.setPreferredWidth(100);} } JScrollPane sp; sp = new JScrollPane(table); dp.add(sp); sp.setBounds(10,30,430,150); bo = new JButton(); bo.setText("Töröl"); dp.add(bo); bo.setBounds(140,190,80,20); bo.addActionListener( this ); bs = new JButton(); bs.setText("Mégse"); dp.add(bs); bs.setBounds(230,190,80,20); bs.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { if (e.getSource() == this.bo) {kilep=2; this.dispose(); setVisible(false);} if (e.getSource() == this.bs) {kilep=3; this.dispose(); setVisible(false);} }
15
Adatkezelés JDBC-vel
16
public int kiLep(){return kilep;} public boolean getJel(int x){return (Boolean)dtmp1.getValueAt(x,0);} } ====================================================================== Autó táblamodell adatok kiírásához:
import javax.swing.table.DefaultTableModel; public class Autm extends DefaultTableModel { public Autm (Object Mezonevek[], int rows){ super(Mezonevek, rows); } @Override public boolean isCellEditable(int row, int col) { return false; } @Override public Class> getColumnClass(int index){ if(index > 3){return(Integer.class);} return(String.class); } } ====================================================================== Adatok kiírása:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; public class AuKiir extends JDialog implements ActionListener{ private JPanel dp; private JButton bo,bs; private Autm dtmp1; private int kilep=0;
Adatkezelés JDBC-vel
public AuKiir(JFrame f, Autm dtmp, int bsx, int bsy) { super(f,"Autó tábla - adatkiírás",true); dtmp1=dtmp; setBounds(bsx-30,bsy+30,460,245); dp = new JPanel(); dp.setLayout(null); this.getContentPane().add( dp); JTable table = new JTable( dtmp1 ); TableColumn column = null; for (int i = 0; i < 6; i++) { column = table.getColumnModel().getColumn(i); if (i == 0) {column.setPreferredWidth(50);} else if (i == 1) {column.setPreferredWidth(90);} else if (i == 2) {column.setPreferredWidth(200);} else if (i == 3) {column.setPreferredWidth(70);} else if (i == 4) {column.setPreferredWidth(40);} else {column.setPreferredWidth(100);} } table.setAutoCreateRowSorter(true); TableRowSorter
sorter = (TableRowSorter)table.getRowSorter(); JScrollPane sp; sp = new JScrollPane(table); dp.add(sp); sp.setBounds(10,10,430,170); bo = new JButton(); bo.setText(" OK"); dp.add(bo); bo.setBounds(200,190,60,20); bo.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { if (e.getSource() == this.bo) {kilep=2; this.dispose(); setVisible(false);} } public int kiLep(){return kilep;} }
17
Adatkezelés JDBC-vel
Tábla metaadatok:
Táblamodell a metaadatok kiírásához: import javax.swing.table.DefaultTableModel; public class AutmM extends DefaultTableModel { public AutmM (Object Mezonevek[], int rows){ super(Mezonevek, rows); } @Override public boolean isCellEditable(int row, int col) { return false; } @Override public Class> getColumnClass(int index){ if(index > 1){return(Integer.class);} return(String.class); } } //======================================================= import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; public class AuMeta extends JDialog implements ActionListener{ private JPanel dp; private JButton bo,bs; private AutmM dtmp1; private int kilep=0; public AuMeta(JFrame f, AutmM dtmp, int bsx, int bsy) { super(f,"Autó tábla - Metaadatok",true); dtmp1=dtmp; setBounds(bsx-30,bsy+30,465,260); dp = new JPanel(); dp.setLayout(null);
18
Adatkezelés JDBC-vel
this.getContentPane().add( dp); JTable table = new JTable( dtmp1 ); JScrollPane sp; sp = new JScrollPane(table); dp.add(sp); sp.setBounds(10,10,430,170); bo = new JButton(); bo.setText(" OK"); dp.add(bo); bo.setBounds(195,190,65,20); bo.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { if (e.getSource() == this.bo) {kilep=2; this.dispose(); setVisible(false);} } public int kiLep(){return kilep;} }
19