按下JButton后将JTable放在JPanel上

时间:2013-03-20 15:35:49

标签: java swing jtable jpanel gridbaglayout

当我运行此代码时,按钮显示在JPanel上,但是一旦我点击按钮,就没有任何反应。关于我在哪里出错的任何建议?对不起,如果真的很简单。在GUI方面,我相当新。

final JPanel card3 = new JPanel();
//Tetris setup
JButton startGame = new JButton("START GAME");
card3.setLayout(new GridBagLayout());
GridBagConstraints gbc2 = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(2,2,2,2);
card3.add(startGame, gbc2);
gbc.gridy = 1;
startGame.addActionListener(new ActionListener() {          
    @Override
    public void actionPerformed(ActionEvent e) {
        Tetris game = new Tetris();
        JTable table = new JTable(game.getNumRows(), game.getNumCols());
        card3.add(table);
    }
});

1 个答案:

答案 0 :(得分:2)

通常,您将表添加到JScrollPane,然后将滚动窗格添加到面板。这样您就会自动获得表头。

将组件添加到可见GUI时,您需要以下代码:

panel.add( scrollPane );
panel.revalidate();

这将导致调用布局管理器,它可以再次布局所有组件。