Hi Leute!
Ich habe das Problem, dass eine JTable und mehrere Textfelder die ich in einer Prozedur deklariert habe,
in einer anderen nicht mehr 'gefunden' werden.
ich habe alle Komponenenten in einer Main Prozedur deklariert und dimensioniert.
Nun habe ich eine ButtonActionPerformed und da sind die Komponeneten nicht mehr ansprechbar
siehe Code:
die mit *** markierten Zeilen sind nicht ansprechbar.
Habe ich irgendwas falsch gemacht?
Gruß
Timo
Ich habe das Problem, dass eine JTable und mehrere Textfelder die ich in einer Prozedur deklariert habe,
in einer anderen nicht mehr 'gefunden' werden.
ich habe alle Komponenenten in einer Main Prozedur deklariert und dimensioniert.
Nun habe ich eine ButtonActionPerformed und da sind die Komponeneten nicht mehr ansprechbar
siehe Code:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package db_test;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class Main
{
private JFrame fenster;
public Main()
{
fenster = new JFrame("OpenJDB");
fenster.setSize(800,600);
fenster.setLocation(100,100);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setLayout(new GridLayout(0, 2));
//JTable
JTable jTable1 = new JTable();
//Tab
JTabbedPane tabbedPane = new JTabbedPane();
//tabbedPane.setSize(10,10);
//fenster.setLayout(null);
fenster.add(tabbedPane);
//Tab 1
JPanel panel1 = new JPanel();
panel1.setOpaque(true);
tabbedPane.addTab("Verbindung", panel1);
//Tab2
JPanel panel2 = new JPanel();
panel2.setOpaque(true);
tabbedPane.addTab("Eingabe", panel2);
//Tab3
JPanel panel3 = new JPanel();
panel3.setOpaque(true);
tabbedPane.addTab("Report", panel3);
//Textfelder für Tab1
JTextField txt_pfad = new JTextField();
JTextField txt_user = new JTextField();
JTextField txt_pw = new JTextField();
JTextField txt_tabelle = new JTextField();
JButton button_verbinden = new JButton();
//Labels für Tab1
JLabel lbl_pfad = new JLabel();
JLabel lbl_user = new JLabel();
JLabel lbl_pw = new JLabel();
JLabel lbl_tabelle = new JLabel();
panel1.setLayout(null);
//Text für Labels , Position und Dimension
// lbl_pfad.doLayout(null);
lbl_pfad.setText("Pfad:");
lbl_pfad.setBounds(10,50,50,10);
lbl_user.setText("User:");
lbl_user.setBounds(10,100,50,10);
lbl_pw.setText("Passwort:");
lbl_pw.setBounds(10,150,80,10);
lbl_tabelle.setText("Tabelle:");
lbl_tabelle.setBounds(10,200,80,10);
//Textfelder
txt_pfad.setBounds(100, 50, 250, 20);
txt_user.setBounds(100, 100, 250,20);
txt_pw.setBounds(100, 150, 250, 20);
txt_tabelle.setBounds(100,200,250,20);
//Button Position,Dimension,Caption
button_verbinden.setBounds(100, 400,200,50);
button_verbinden.setText("Verbinden");
//Texfelder und Labels in Tab1
panel1.add(lbl_pfad);
panel1.add(lbl_user);
panel1.add(lbl_pw);
panel1.add(lbl_tabelle);
panel1.add(txt_pfad);
panel1.add(txt_user);
panel1.add(txt_pw);
panel1.add(txt_tabelle);
panel1.add(button_verbinden);
//Textfelder in Panel setzen
panel1.add(txt_pfad);
panel1.add(txt_user);
panel1.add(txt_pw);
fenster.add(BorderLayout.SOUTH,jTable1);
fenster.setVisible(true);
}
public static void main(String[] args)
{
Main g = new Main();
}
public void button_verbindenActionPerformed(java.awt.event.ActionEvent evt) {
//Verbinden Knopf wude gerdrückt ****HIER SIND JTable1 und die Textboxen NICHT MEHR SICHTBAR***
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception e) {
System.out.println("JDBC Treiber konnte nicht geladen werden");
}
Connection verbindung = null;
try {
verbindung = DriverManager.getConnection(txt_pfad.getText(), txt_user.getText(), txt_pw.getText());//**Fehler
DefaultTableModel aModel = (DefaultTableModel) jTable1.getModel(); //***Compilerfehler***
Statement st = verbindung.createStatement();
ResultSet rs = st.executeQuery("select * from Liste");
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
for (int k = 1; k < colNo; k++) {
//aModel.setColumnIdentifiers(tableColumnsName);
//aModel.setColumnIdentifiers(rsmd.getColumnName(k));
aModel.addColumn(rsmd.getColumnName(k));
// jComboBox1.addItem(rsmd.getColumnName(k));
}
while (rs.next()) {
Object[] objects = new Object[colNo];
// tanks to umit ozkan for the bug fix!
for (int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(i + 1);
}
aModel.addRow(objects);
}
jTable1.setModel(aModel);
} //ende try-block
catch (Exception ex) {
System.out.println(ex);
}
}
//private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
//jLabel2.setText((String) jComboBox1.getSelectedItem());
// }
}
die mit *** markierten Zeilen sind nicht ansprechbar.
Habe ich irgendwas falsch gemacht?
Gruß
Timo