【问题标题】:What is wrong with my layout code? [closed]我的布局代码有什么问题? [关闭]
【发布时间】:2014-12-07 05:18:57
【问题描述】:

所以,当我启动我的程序时,我的按钮会混淆,整个屏幕上都会出现一个巨大的 JButton。代码如下:

super ("Title");

okvir = new JFrame();
okvir.setSize(1350, 768);
okvir.setLocation (0, 0);
okvir.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okvir.setVisible(true);

sab = new JButton("sabiranje");
sab.setBounds (20 , 20 , 50 , 20);
okvir.add(sab);
od = new JButton ("oduzimanje");
od.setBounds (20 , 40 , 50 , 20);
okvir.add(od);
rez = new JLabel ("rezultat");
rez.setBounds (20 , 60 , 50 , 20);
okvir.add(rez);
x = new JTextField ("",4);
x.setBounds (20 , 80 , 50 , 20);
okvir.add(x);
y = new JTextField("",4);
y.setBounds (20 , 100 , 50 , 20);
okvir.add(y);
mnoz = new JButton("mnozenje");
mnoz.setBounds (20 , 120 , 50 , 20);
okvir.add(mnoz);
delj = new JButton ("deljenje");
delj.setBounds (20 , 140 , 50 , 20);
okvir.add(delj);

【问题讨论】:

    标签: java layout


    【解决方案1】:

    您将所有按钮放置在框架的 BorderLayout.CENTER 位置,这不仅尊重其子组件的引用大小,而且替换每个后续按钮。创建一个新面板来容纳按钮。

    调用 setBounds 将无效,因为您使用的是布局管理器,因此可以删除这些语句

    【讨论】:

    • 感谢您的回复。我应该怎么做才能使用 .setBounds?
    • 别这样!改用布局管理器,并使用根据首选尺寸打包框架的大小
    • @vulovicv:不推荐使用setBounds(...)和空布局,因为这会导致非常不灵活的GUI,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,而且非常难以更新和维护。这也是一个很好的迹象,代码是由一个新手 Swing 编码器创建的。相反,您需要学习和学习布局管理器,然后嵌套 JPanel,每个 JPanel 都使用自己的布局管理器来创建在所有操作系统上看起来都不错的令人愉悦且复杂的 GUI。
    • 谢谢大家,这很有帮助
    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2022-09-22
    • 2016-02-27
    • 2022-06-10
    相关资源
    最近更新 更多