Hallo,ich möchte nach Bestätigen eines StartButton eine JTable aktualisieren. Die Aktualisierung erfolgt, aber erst nach Abschluß der Schleife wird die Ansicht refreshed.
Gleiches passiert mit einem JProgressBar..Gruß + Danke
import java.awt.*;
.
.
public class Frame1 extends JFrame {
JPanel contentPane;
JButton jButton1 = new JButton();
JTable jTable1;
JProgressBar jProgressBar1 = new JProgressBar();
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
TabellenModell modell = new TabellenModell();
jTable1 = new JTable(modell);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jButton1.setBounds(new Rectangle(264, 16, 133, 31));
jButton1.setText("Aktualisieren");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame-Titel");
jTable1.setBounds(new Rectangle(62, 87, 227, 120));
jProgressBar1.setMaximum(10);
jProgressBar1.setBounds(new Rectangle(183, 236, 149, 23));
contentPane.add(jButton1, null);
contentPane.add(jTable1, null);
contentPane.add(jProgressBar1, null);
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void jButton1_actionPerformed(ActionEvent e) {
for (int i=0; i<10;i++){
try {
Thread.sleep(500);
}
catch (Exception e1) {}
jTable1.setValueAt(String.valueOf(i) ,0,0);
jProgressBar1.setValue(i) ;
}
}
}
class TabellenModell extends AbstractTableModel {
Object[][] daten = {
{"Frau","Mustermann", new Integer(24), new Boolean(false)},
{"Herr","Mustermann", new Integer(54), new Boolean(true)}};
String[] spaltenNamen = {"Anrede", "Nachname", "Alter", "Verheiratet"};
public int getRowCount() {
return daten.length;
}
public int getColumnCount() {
return spaltenNamen.length;
}
public String getColumnName(int num) {
return spaltenNamen[num];
}
public void setValueAt(Object obj, int x, int y) {
daten[x][y] = obj;
fireTableDataChanged();
}
public boolean isCellEditable(int x, int y) {
return true;
}
public Object getValueAt(int x, int y) {
return daten[x][y];
}
public Class getColumnClass(int num) {
Object obj = getValueAt(0,num);
return obj.getClass();
}
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
Gleiches passiert mit einem JProgressBar..Gruß + Danke
import java.awt.*;
.
.
public class Frame1 extends JFrame {
JPanel contentPane;
JButton jButton1 = new JButton();
JTable jTable1;
JProgressBar jProgressBar1 = new JProgressBar();
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
TabellenModell modell = new TabellenModell();
jTable1 = new JTable(modell);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jButton1.setBounds(new Rectangle(264, 16, 133, 31));
jButton1.setText("Aktualisieren");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame-Titel");
jTable1.setBounds(new Rectangle(62, 87, 227, 120));
jProgressBar1.setMaximum(10);
jProgressBar1.setBounds(new Rectangle(183, 236, 149, 23));
contentPane.add(jButton1, null);
contentPane.add(jTable1, null);
contentPane.add(jProgressBar1, null);
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void jButton1_actionPerformed(ActionEvent e) {
for (int i=0; i<10;i++){
try {
Thread.sleep(500);
}
catch (Exception e1) {}
jTable1.setValueAt(String.valueOf(i) ,0,0);
jProgressBar1.setValue(i) ;
}
}
}
class TabellenModell extends AbstractTableModel {
Object[][] daten = {
{"Frau","Mustermann", new Integer(24), new Boolean(false)},
{"Herr","Mustermann", new Integer(54), new Boolean(true)}};
String[] spaltenNamen = {"Anrede", "Nachname", "Alter", "Verheiratet"};
public int getRowCount() {
return daten.length;
}
public int getColumnCount() {
return spaltenNamen.length;
}
public String getColumnName(int num) {
return spaltenNamen[num];
}
public void setValueAt(Object obj, int x, int y) {
daten[x][y] = obj;
fireTableDataChanged();
}
public boolean isCellEditable(int x, int y) {
return true;
}
public Object getValueAt(int x, int y) {
return daten[x][y];
}
public Class getColumnClass(int num) {
Object obj = getValueAt(0,num);
return obj.getClass();
}
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}