对象之间的Java Swing间距

标签 java swing layout space

我有一个 Java 程序,如果我能得到一个非常具体的布局,我会更喜欢。

这是我得到的:

JLabel JToggleButon JLabel JToggleButon

这就是我想要的:

JLabel JToggleButon

JLabel JToggleButon

这是代码:

 package Main;
import javax.swing.*;

import java.awt.FlowLayout;
import java.awt.GridBagLayout;

public class SystemWindow {
    static JFrame window = new JFrame("System statistics");
    static JToggleButton button = new JToggleButton("Push me");
    static JLabel status = new JLabel("Status: ");
    static JLabel status2 = new JLabel("Status: ");
    static JToggleButton button2 = new JToggleButton("Push me");
    static FlowLayout layout = new FlowLayout();
    public static void openWindow(){
    window.setLayout(new GridBagLayout());
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.add(status);
    window.add(button);
    window.add(status2);
    window.add(button2);
    window.setSize(100, 100);
    window.pack();
    window.setSize(200,70);
    window.setVisible(true);
    while(true){
        status.setText("Status: "+button.isSelected());
            status2.setText("Status: "+button2.isSelected());
        }


    }
}

p.s: 代码是用eclipse写的

最佳答案

您可以使用 GridLayout,您可以在其中指定行、列和间距

即添加一个带有 gridlayout 的 jpanel 并在此面板中添加这些元素

new JPanel(new GridLayout(2,2,5,5));

第一个参数是行,第二个是列,其他是控件之间的水平和垂直间距

我想这行得通

JPanel panel = new JPanel(new GridLayout(2,2,5,5));
window.add(panel);
panel.add(status);
panel.add(button);
panel.add(status2);
panel.add(button2);

关于对象之间的Java Swing间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19677593/

相关文章:

java - 禁用 Swing 中 GUI 上的按钮

c# - 允许控件正确缩放的布局

Android - createView 之后的事件

java - 从多个线程修改 hibernate 实体

java - 为什么 JavaFX 文档与 Java 8 文档分开?

java - 扫描仪与 FileInputStream

java - 如何使用 AlarmManager 将闹钟设置为每个月的第一个星期四

Java 在 JPanel 内声明serialVersionUID 时出错

java - 软键盘推送布局

java - 需要帮助来纠正我的小 Swing 代码中的绘画