我有一个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中写了代码。
答案 0 :(得分:1)
您可以使用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);
答案 1 :(得分:0)
答案 2 :(得分:-1)
当您使用GridBayLayout
时,您必须在向容器添加控件时提供一些位置限制。 Here you have complete guide。第三方布局管理器作为MigLayout也应该适合您的需求。
while(true){
status.setText("Status: "+button.isSelected());
status2.setText("Status: "+button2.isSelected());
}
由于该代码,您的计算机将会爆炸:)