更改JButton的尺寸

时间:2016-04-23 14:46:34

标签: java swing jtable jbutton dimensions

我有这个问题。该按钮占用整个JFrame。我尝试过改变JFrame和JButton的尺寸,但没有改变。它完全隐藏了一个JTable。有人可以告诉我我做错了什么。

JFrame FRAME = new JFrame();
  JButton BUTTON = new JButton("OK");
  FRAME.add(new JScrollPane(TableName));
  BUTTON.setPreferredSize(new Dimension(20,30));
  FRAME.add(BUTTON);
  FRAME.setSize(700, 600);
  FRAME.setVisible(true);
  FRAME.setLocationRelativeTo(null);

3 个答案:

答案 0 :(得分:2)

JFrame的默认布局管理器是BorderLayout。您正在尝试添加两个不允许的CENTER组件。仅显示添加的最后一个。

在向BorderLayout添加组件时,您需要指定约束。你的代码应该是这样的:

  frame.add(new JScrollPane(TableName), BorderLayout.CENTER);
  button.setPreferredSize(new Dimension(20,30));
  frame.add(button, BorderLayout.PAGE_START);

此外,变量名称不应该是大写的。遵循Java惯例。

阅读How to Use BorderLayout上Swing教程中的部分,了解更多信息和工作示例。教程代码还将向您展示如何更好地构建程序,以便遵循Swing编码约定。

答案 1 :(得分:0)

不要将按钮直接添加到框架,首先创建JPanel,将按钮添加到面板然后将面板添加到框架。

答案 2 :(得分:-1)

    JFrame frame = new JFrame();
    // frame.setBounds(x axis, y axis, weight, height)
    frame.setBounds(10,10,304,214);
    frame.getContentPane().setLayout(null);

    JButton button = new JButton("Button");
    button.setBounds(98, 75, 126, 39);
    frame.getContentPane().add(button);
    frame.setVisible(true);