JButton布局设置

Saj*_*jad 1 java layout swing jframe jbutton

在我的代码中,我的状态okButton很糟糕,如此大而长,如何解决这个问题呢?

public class d7Table extends JFrame {

public JTable table;
public JButton okButton;

public d7Table() {

        table = new JTable(myTableModel(res));
        okButton = new JButton("Ok");

    add(new JScrollPane(table), BorderLayout.CENTER);
    add(okButton, BorderLayout.PAGE_END);

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(800, 600);
    this.setLocation(300, 60);
    this.setVisible(true);
}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new d7Table();
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

我删除了不相关的代码. 在此输入图像描述

Mad*_*mer 5

您已将按钮添加到a的SOUTH位置BorderLayout.这是默认行为BorderLayout.

它修复它,创建另一个JPanel,添加你的按钮,然后将面板添加到SOUTH位置

看一眼

上面提到的方法通常称为复合布局,因为您使用一系列具有不同布局管理器的容器来实现所需的效果.

JPanel buttonPane = new JPanel(); // FlowLayout by default
JButton okayButton = new JButton("Ok");
buttonPanel.add(okayButton);
add(okayButton, BorderLayout.SOUTH);
Run Code Online (Sandbox Code Playgroud)

  • @Sajjad:关于"我试图通过反复试验来学习,不幸的是我没有耐心从头开始学习!"` - 如果你真的没有时间或耐心去"先学习"那么你将无法学习Java,只是在浪费你和我们在这里提问的时间.请证明我错了,并表明您愿意投入所需的时间和精力.-1这是你对这个可怕的评论和你职业道德的反思的问题. (2认同)
  • @Azad我真诚地感谢你的指导,我的穆斯林兄弟. (2认同)