簡體   English   中英

單擊按鈕顯示表格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM