我正在构建一个Pizza表单,并遇到了JLabel和JCheckbox类的问题。
我应该构建一个面板来模拟披萨的烹饪说明,它应该是各种复选框。一行中应有3个选项,另一行中应有2个选项。例如:
烹饪说明
♦库克精简版
♦酱油
♦酱油
♦做得好
♦清淡的奶酪
public CookingInstructions() {
JLabel label1 = new JLabel();
label1.setText("Cooking Instructions");
setLayout(new GridLayout(0,2));
add(label1);
cookLite = new JCheckBox("Cook Lite");
extraSauce = new JCheckBox("Extra Sauce");
lightSauce = new JCheckBox("Light Sauce");
wellDone = new JCheckBox("Well Done");
lightCheese = new JCheckBox("Light Cheese");
add(cookLite);
add(extraSauce);
add(lightSauce);
add(wellDone);
add(lightCheese);
}
如何做到这一点,以使JLabel(“烹饪说明”)始终位于一系列复选框的顶部,而不管其中可能有多少个复选框?
答案 0 :(得分:-1)
您需要添加容纳所有JCheckBox的新Jpanel。然后,将Jlabel和Jpanel与BorderLayout结合使用。在这里实现。
package javaapplication7;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class JavaApplication7 extends JFrame {
JCheckBox cookLite,extraSauce,lightSauce,wellDone,lightCheese;
JavaApplication7(){
JLabel label1 = new JLabel();
label1.setText("Cooking Instructions");
setLayout(new BorderLayout());
add(label1,BorderLayout.NORTH);
cookLite = new JCheckBox("Cook Lite");
extraSauce = new JCheckBox("Extra Sauce");
lightSauce = new JCheckBox("Light Sauce");
wellDone = new JCheckBox("Well Done");
lightCheese = new JCheckBox("Light Cheese");
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(0,2));
panel.add(cookLite);
panel.add(extraSauce);
panel.add(lightSauce);
panel.add(wellDone);
panel.add(lightCheese);
add(panel,BorderLayout.CENTER);
setSize(400,500);
setVisible(true);
}
public static void main(String[] args) {
new JavaApplication7();
}
}
希望有帮助