java - 如何在 GridLayout (java swing) 中定义/排列按钮位置?

标签 java swing

我的代码编译时没有错误或警告,但按钮在默认位置(网格窗口的中心)相互重叠。我怎样才能克服这个问题?我真的想避免使用 GridBagLayout,因为我发现它有点太烦人和复杂。

我已经阅读了很多关于这个问题的内容(从这里和其他平台上的帖子到 sun 提供的文档),但除了使用“神秘的”GridBagLayout 方法之外,似乎没有什么真正有效的。

任何人都可以帮助我或为我指出一个更好、更富有成果的方向吗?

我提供了我在下面编写的代码。

提前致谢。 //计算器的版本2(使用网格) 导入java.awt.GridLayout; 导入 javax.swing.JButton; 导入 javax.swing.JFrame; //导入javax.swing.JTextField;

//buttons definition and declaration, layout class definition

public class calculatorV2 extends JFrame {

    private static final long serialVersionUID = 1L;
    GridLayout calcGui;
    //JTextField display;

        public calculatorV2(){
            calcGui = new GridLayout(4,4,2,2);
            setSize(400,400);
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            pack();
            setVisible(true);
            setTitle("Calculator");
            setLocationRelativeTo(null);
            //display = new JTextField();
            //display.setHorizontalAlignment(JTextField.RIGHT);

            add(new JButton("0"));
            add(new JButton("1"));
            add(new JButton("2"));
            add(new JButton("3"));
            add(new JButton("4"));
            add(new JButton("5"));
            add(new JButton("6"));
            add(new JButton("7"));
            add(new JButton("8"));
            add(new JButton("9"));
            add(new JButton("+"));
            add(new JButton("-"));
            add(new JButton("*"));
            add(new JButton("/"));
            add(new JButton("="));
            add(new JButton("C"));

            }

//run grid
public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new calculatorV2();
        }

    });
}}

最佳答案

您尚未在 JFrame 上设置布局,您仅实例化了一个。 在添加组件之前,您需要调用

setLayout(calcGui);

关于java - 如何在 GridLayout (java swing) 中定义/排列按钮位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590025/

相关文章:

java - AndroidTestCase 中永远不会调用 AsyncTask 的 onPostExecute()

java - 如何让JComboBox中的内容居中显示?

java - jtextpane 突出显示仅突出显示第一个实例

java - 需要有关 jComboBox 和 jTable 的帮助

java - 如何选择 JList 中每个单元格包含包含 JTextArea 的 JPanel 的行

java - JEE 无法运行 JAX-RS WebService 框架应用程序

java - 从 ComboBox 中进行选择时,用数据库条目填充 JList

java - 字体,返回默认大小

java - java中比较数组元素

java - Spring框架-类加载器关系