问题
How to make repaint for JDialog in Swing? If I click on convert button in JDialog I need to change GUI design of JDialog but it's not happening? Is their any solution?
_convertAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
String para = new String();
_task.setBookTypeId(13);
initComponents();
// validate();
// repaint();
setVisible(true);
}
};
I'm setting booking type id is 13 .
if(_task.getBookTypeId()== 1){
String colnames[] = {"Leg","Departure", "Date","Time", "Arrival","Date", "Time","How","Aircraft","PIC","Copilot"};
MyTableModel mytablemodel = new MyTableModel(colnames);
legdetailsTable = new JTable(mytablemodel);
legdetailsTable.setRowSelectionAllowed(true);
}else {
System.out.println("Brokered booking table");
String colnames[] = {"Leg","Departure", "Date","Time", "Arrival","Date", "Time","How"};
MyTableModel mytablemodel = new MyTableModel(colnames);
legdetailsTable = new JTable(mytablemodel);
legdetailsTable.setRowSelectionAllowed(true);
}
Using Id I'm changing componenents in initcomponents method.
回答1:
You can get the Window of the current Component or any Component and than call repaint()
.
SwingUtilities.getWindowAncestor( this ).repaint();
回答2:
Instead of
legdetailsTable = new JTable(mytablemodel);
add
legdetailsTable.setModel(mytablemodel);
You recreate JTable but the new one isn't added to layout
来源:https://stackoverflow.com/questions/7105933/how-to-make-repaint-for-jdialog-in-swing