gpt4 book ai didi

java - 如何通过将 BoxLayout 更改为不同的 LayoutManager 来改进 GUI?

转载 作者:行者123 更新时间:2023-12-01 15:02:23 24 4
gpt4 key购买 nike

我在 Java 中使用 Swing 时遇到了一个大问题,我使用了 BoxLayout,但它看起来仍然很糟糕。关于我使用布局的任何建议,或者如何将其更改为假设中的样子? (here are assumptions)

Container main = new Container();
Container left = new Container();// here goin buttons
Container right = new Container(); // here goin tabs + more buttons, textfields and other stuff

BoxLayout lewyL = new BoxLayout(left, BoxLayout.Y_AXIS);
left.setLayout(lewyL);
left.add(rastrowa); //radiobutton
left.add(wektorowa);//radiobutton
left.add(apDwuliniowa);//checkbox
left.add(wczytaj);//button
left.add(zapisz);//obutton
left.add(wyczysc);//button
BoxLayout prawyL = new BoxLayout(right, BoxLayout.Y_AXIS);
right.setLayout(prawyL);
right.add(zakladki);// tabs (mostly i use BoxLayout but for last one i need something more "complicated")

编辑:我几乎解决了这个问题,我需要将所有元素移动到左侧( how it look like ),但我不知道如何;/这是此类的构造函数。

            JLabel label = new JLabel("O wektor");
JLabel labelA = new JLabel("a:");
JLabel labelB = new JLabel("b:");
JButton wykonaj = new JButton("Wykonaj");
JTextField a = new JTextField(5);
JTextField b = new JTextField(5);
add(label);
add(labelA);
add(a);
add(labelB);
add(b);
add(wykonaj);

最佳答案

它的外观没有任何问题(在我看来),但如果你想让它看起来更好一点,为什么不将左侧面板(6x1)转换为 3x2 面板,并带有复选框/单选按钮在左边,按钮在右边?听起来像是 GridLayout 的工作 - 我最喜欢的类之一......

JPanel leftPanel = new JPanel(new GridLayout(3,2));
leftPanel.add(rastrowa); //radiobutton
leftPanel.add(wczytaj); //button
leftPanel.add(wektorowa); //radiobutton
leftPanel.add(zapisz); //obutton
leftPanel.add(apDwuliniowa); //checkbox
leftPanel.add(wyczysc); //button

请注意,3,2 定义行数、列数。添加面板时,它们会从左到右、从上到下添加到网格中。 GridLayout 还会自动调整组件的大小,因此所有按钮等都将具有相同的宽度和高度,使其看起来更加一致。

GridLayout documentation可能有用,并且 Visual Guide to Layout Managers是查看其他布局管理器的好地方,它们可能更适合您的不同情况。我个人认为 BorderLayoutGridLayout 是最有用的,它们涵盖了我的 GUI 所需的大约 95% 的情况。

关于java - 如何通过将 BoxLayout 更改为不同的 LayoutManager 来改进 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13454589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com