猿问

如何在多个复选框的顶部添加 JLabel 文本?

我正在构建 Pizza 表单并遇到了 JLabel 和 JCheckbox 类的问题。

我应该构建一个模拟比萨饼烹饪说明的面板,它应该是各种复选框。在一行中应该有 3 个选项,在另一行中应该有 2 个选项。例如:
烹饪说明
♦Cook Lite ♦Extra Sauce
♦Light Sauce ♦做得好
♦Light Cheese

然而,这就是我得到的:

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(“烹饪说明”)保持在一系列复选框的顶部,而不管那里可能有多少个复选框?


明月笑刀无情
浏览 128回答 1
1回答

DIEA

你需要添加包含所有 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();      }}希望能帮上忙
随时随地看视频慕课网APP

相关分类

Java
我要回答