[英]Show table on button click
我只想做的就是當用戶單擊一個按鈕並且可以正常工作時在JTable
顯示一些數據,但是正在發生一些奇怪的事情。 第一次單擊按鈕時,什么都沒有發生,但是當我最大化框架時,表格出現了!
ActionListener
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
boolean state = external.isSelected();
DefaultTableModel model = new DefaultTableModel(ManhattanTable(values), Headers(values));
JTable table = new JTable(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
container.add(new JScrollPane(table));
table.setVisible(false);
if(state) {
PrintStream out = null;
try {
out = new PrintStream(new FileOutputStream("output.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.setOut(out);
long start= System.currentTimeMillis();
Manhattan(values);
long end=System.currentTimeMillis();
out.println("time: "+(end-start)+" milliseconds");
out.println("Number of input data: "+values.size());
} else {
table.setVisible(true);
}
}
});
誰知道,為什么這種奇怪的行為?
添加表后,調用container.revalidate()
問題是您創建了表並設置了屬性,但是您沒有告訴窗口重繪其組件。 更改窗口大小時,將強制其重新繪制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.