Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java对象之间的摆动间距_Java_Swing_Layout_Space - Fatal编程技术网

Java对象之间的摆动间距

Java对象之间的摆动间距,java,swing,layout,space,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 S

我有一个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,在其中可以指定行、列和间距

i、 e.添加一个带有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);

您得到的行为是
FlowLayout
的默认行为。阅读更多关于它的信息。阅读更多关于布局的信息,并选择您喜欢的内容。

当您使用
GridBayLayout
时,在向容器添加控件时,必须提供一些位置约束。作为MigLayout的第三方布局管理器也应满足您的需要

   while(true){
    status.setText("Status: "+button.isSelected());
        status2.setText("Status: "+button2.isSelected());
    }

你的计算机会因为这个代码而爆炸:)

javascript代码或java代码?我在eclipse中编写它。我如何继续并实现它。我想你可以初始化一个新面板,而不是window.setLayout(new gridbagloayout());您可以将该面板添加到窗口中。然后将所有其他控件添加到该面板中。非常感谢。工作完美。:)