Hallo zusammen,
ich arbeite gerade an so einer Art Teilekatalog. Leider habe ich gerade Probleme damit die JTable zu ändern/ersetzen.
Schon wenn ich die Daten mit der Funktion createTableGroup() ersetze sind sie zwar laut Beipiel Syso in der void bnStart_actionPerformed(ActionEvent e) vorhanden, werden aber in der GUI nicht angezeigt. Gibt es da noch einen anderen Aktualisierungsbefehl? "updateUI()" funktioniert auch nicht.
Und dann will ich in der nächsten Ebene die Tabelle durch eine mit mehr Spalten ersetzen. Wie stelle ich das an?
Vielen Dank im Voraus.
Quellcode:
public class GUI extends JFrame {
Vector items = new Vector();
JTable tabelle1;
JScrollPane scrollpane;
JButton bnStart = new JButton("Startseite");
JButton bnForward = new JButton("Vorwärts");
JButton bnBack = new JButton("Zurück");
JButton bnPack = new JButton("Opt.Fenster");
JButton bnExit = new JButton("Ende");
JPanel grid = new JPanel();
JPanel top = new JPanel();
JPanel right = new JPanel();
ImagePanel left = new ImagePanel();
Object[][] _data;
//Konstruktor setzt Fenstereinstellungen
public GUI() {
//items.add(new Teildaten(1, "Schraube","01234566", "14,50€"));
setLocation(0,0);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setSize(1500, 900);
setMinimumSize(new Dimension(1200,850));
setTitle("Motocross Motorradkatalog");
setGUI();
} // create
public void setGUI(){
bnStart.setPreferredSize( bnPack.getPreferredSize() );
bnForward.setPreferredSize(bnPack.getPreferredSize() );
bnBack.setPreferredSize( bnPack.getPreferredSize() );
bnPack.setPreferredSize( bnPack.getPreferredSize() );
bnExit.setPreferredSize( bnPack.getPreferredSize() );
top.setBackground(Color.BLACK);
top.add(bnStart);
top.add(bnForward);
top.add(bnBack);
top.add(bnPack);
top.add(bnExit);
left.setSize(800, 800);
this.getContentPane().add(grid, BorderLayout.CENTER);
//Tabelle füllen, formatieren und mit Scrollpane kombinieren
tabelle1 = createTableStart();
tabelle1.setFont( new Font("Arial", Font.BOLD, 18) );
scrollpane = new JScrollPane(tabelle1);
right.add(scrollpane, BorderLayout.CENTER);
//GridBagLayout für Teilbereiche
grid.setLayout( new GridBagLayout());
//Teilpanel Bedienung
grid.add(top,
new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0,0,0,0), 0, 0));
//Teilpanel links (Bild)
grid.add(left,
new GridBagConstraints(0, 1, 1, 1, 2.0, 2.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0,0,0,0), 0, 0));
//Teilpanel rechts (Tabelle)
grid.add(right,
new GridBagConstraints(1, 1, 1, 1, 0.0,0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(0,0,0,0), 0, 0));
//Action Listener für Exit-Button
bnExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnExit_actionPerformed(e);
}
});
bnStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnStart_actionPerformed(e);
}
});
bnPack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnPack_actionPerformed(e);
}
});
}// setGUI()
//Aktionen bestimmen
void bnExit_actionPerformed(ActionEvent e){
System.exit(0);
}
void bnStart_actionPerformed(ActionEvent e){
left.changeImage("C:\\Users\\KurthKing\\workspace\\EA_GUI\\src\\YZ250.jpg");
left.repaint();
tabelle1 = createTableGroup();
System.out.println(tabelle1.getValueAt(1, 1));
tabelle1.repaint();
tabelle1.revalidate();
tabelle1.updateUI();
scrollpane.repaint();
scrollpane.validate();
grid.revalidate();
grid.repaint();
this.revalidate();
this.repaint();
this.getContentPane().revalidate();
}
void bnPack_actionPerformed(ActionEvent e){
this.pack();
}
String[] colName1 = {"Position","Modell"};
//Tabelleninhalt auf Startseite
public JTable createTableStart() {
TableModel dataModel = new AbstractTableModel() {
public String getColumnName(int column) {
return colName1[column];
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return 2;
}
public Object getValueAt(int row, int column) {
if(column==0)
return row+1;
else{
switch (row) {
case 0: return "YZ250";
case 1: return "DT125";
default: return "Fehler!";
}
}
}
};
JTable table = new JTable(dataModel);
return table;
} // createTable
public JTable createTableGroup() {
tabelle1.removeAll();
colName1[0] = "Position";
colName1[1]="Baugruppe";
TableModel dataModel = new AbstractTableModel() {
public String getColumnName(int column) {
return colName1[column];
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return 2;
}
public Object getValueAt(int row, int column) {
if(column==0)
return row+1;
else{
switch (row) {
case 0: return "Motor";
case 1: return "Fahrwerk";
default: return "Fehler!";
}
}
}
};
JTable table = new JTable(dataModel);
return table;
} // createTable
// Main
public static void main(String[] args) {
// TODO Auto-generated method stub
GUI frame = new GUI();
frame.setVisible(true);
}
}
ich arbeite gerade an so einer Art Teilekatalog. Leider habe ich gerade Probleme damit die JTable zu ändern/ersetzen.
Schon wenn ich die Daten mit der Funktion createTableGroup() ersetze sind sie zwar laut Beipiel Syso in der void bnStart_actionPerformed(ActionEvent e) vorhanden, werden aber in der GUI nicht angezeigt. Gibt es da noch einen anderen Aktualisierungsbefehl? "updateUI()" funktioniert auch nicht.
Und dann will ich in der nächsten Ebene die Tabelle durch eine mit mehr Spalten ersetzen. Wie stelle ich das an?
Vielen Dank im Voraus.
Quellcode:
public class GUI extends JFrame {
Vector items = new Vector();
JTable tabelle1;
JScrollPane scrollpane;
JButton bnStart = new JButton("Startseite");
JButton bnForward = new JButton("Vorwärts");
JButton bnBack = new JButton("Zurück");
JButton bnPack = new JButton("Opt.Fenster");
JButton bnExit = new JButton("Ende");
JPanel grid = new JPanel();
JPanel top = new JPanel();
JPanel right = new JPanel();
ImagePanel left = new ImagePanel();
Object[][] _data;
//Konstruktor setzt Fenstereinstellungen
public GUI() {
//items.add(new Teildaten(1, "Schraube","01234566", "14,50€"));
setLocation(0,0);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setSize(1500, 900);
setMinimumSize(new Dimension(1200,850));
setTitle("Motocross Motorradkatalog");
setGUI();
} // create
public void setGUI(){
bnStart.setPreferredSize( bnPack.getPreferredSize() );
bnForward.setPreferredSize(bnPack.getPreferredSize() );
bnBack.setPreferredSize( bnPack.getPreferredSize() );
bnPack.setPreferredSize( bnPack.getPreferredSize() );
bnExit.setPreferredSize( bnPack.getPreferredSize() );
top.setBackground(Color.BLACK);
top.add(bnStart);
top.add(bnForward);
top.add(bnBack);
top.add(bnPack);
top.add(bnExit);
left.setSize(800, 800);
this.getContentPane().add(grid, BorderLayout.CENTER);
//Tabelle füllen, formatieren und mit Scrollpane kombinieren
tabelle1 = createTableStart();
tabelle1.setFont( new Font("Arial", Font.BOLD, 18) );
scrollpane = new JScrollPane(tabelle1);
right.add(scrollpane, BorderLayout.CENTER);
//GridBagLayout für Teilbereiche
grid.setLayout( new GridBagLayout());
//Teilpanel Bedienung
grid.add(top,
new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0,0,0,0), 0, 0));
//Teilpanel links (Bild)
grid.add(left,
new GridBagConstraints(0, 1, 1, 1, 2.0, 2.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0,0,0,0), 0, 0));
//Teilpanel rechts (Tabelle)
grid.add(right,
new GridBagConstraints(1, 1, 1, 1, 0.0,0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(0,0,0,0), 0, 0));
//Action Listener für Exit-Button
bnExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnExit_actionPerformed(e);
}
});
bnStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnStart_actionPerformed(e);
}
});
bnPack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
bnPack_actionPerformed(e);
}
});
}// setGUI()
//Aktionen bestimmen
void bnExit_actionPerformed(ActionEvent e){
System.exit(0);
}
void bnStart_actionPerformed(ActionEvent e){
left.changeImage("C:\\Users\\KurthKing\\workspace\\EA_GUI\\src\\YZ250.jpg");
left.repaint();
tabelle1 = createTableGroup();
System.out.println(tabelle1.getValueAt(1, 1));
tabelle1.repaint();
tabelle1.revalidate();
tabelle1.updateUI();
scrollpane.repaint();
scrollpane.validate();
grid.revalidate();
grid.repaint();
this.revalidate();
this.repaint();
this.getContentPane().revalidate();
}
void bnPack_actionPerformed(ActionEvent e){
this.pack();
}
String[] colName1 = {"Position","Modell"};
//Tabelleninhalt auf Startseite
public JTable createTableStart() {
TableModel dataModel = new AbstractTableModel() {
public String getColumnName(int column) {
return colName1[column];
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return 2;
}
public Object getValueAt(int row, int column) {
if(column==0)
return row+1;
else{
switch (row) {
case 0: return "YZ250";
case 1: return "DT125";
default: return "Fehler!";
}
}
}
};
JTable table = new JTable(dataModel);
return table;
} // createTable
public JTable createTableGroup() {
tabelle1.removeAll();
colName1[0] = "Position";
colName1[1]="Baugruppe";
TableModel dataModel = new AbstractTableModel() {
public String getColumnName(int column) {
return colName1[column];
}
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return 2;
}
public Object getValueAt(int row, int column) {
if(column==0)
return row+1;
else{
switch (row) {
case 0: return "Motor";
case 1: return "Fahrwerk";
default: return "Fehler!";
}
}
}
};
JTable table = new JTable(dataModel);
return table;
} // createTable
// Main
public static void main(String[] args) {
// TODO Auto-generated method stub
GUI frame = new GUI();
frame.setVisible(true);
}
}