gpt4 book ai didi

Java 多个复选框

转载 作者:行者123 更新时间:2023-11-30 03:54:12 25 4
gpt4 key购买 nike

我有多个复选框的问题。当我用我的代码创建它们时,它只显示最后一个框“bolonska zmes”,其他框仅在鼠标悬停时显示。我认为这可能是图层的问题,但我不知道该怎么办。谢谢您的帮助。

  public class OknoPizzaVlastna extends JFrame
{
private String nazvy[] = { "cesnak", "feferony", "hrasok", "cibula",
"kecup", "tatarskaOmacka", "vajce",
"kapia", "fazula", "kukurica", "ananas", "brokolica",
"Niva", "Mozarella", "olivy", "inovec udeny", "articoky",
"klobasa", "sampiony", "salama", "slanina", "hranolky", "tuniak",
"sunka", "kuracie maso", "syr", "Morska zmes", "bolonska zmes"};

private JCheckBox boxes[];

public OknoPizzaVlastna()
{
boxes = new JCheckBox[nazvy.length];

for (int i = 0; i < nazvy.length; i++)
{
createrCheckBox(i);
}

setTitle("Vlastna Pizza");
setSize(480,320);
setVisible(true);
setResizable(true);

getContentPane().setLayout(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

public void createrCheckBox(int i)
{
boxes[i] = new JCheckBox();
//proper locations will be solved later
boxes[i].setLocation(62+i*30,54+i*20);
boxes[i].setSize(100,50);
boxes[i].setText(nazvy[i]);
boxes[i].setSelected(false);
boxes[i].setVisible(true);
getContentPane().add(boxes[i]);
}
}

最佳答案

如果问题是“如何布局此 GUI?”答案可能是:

要组织组件以获得强大的 GUI,请使用布局管理器,或 combinations of them ,以及 white space 的布局填充和边框.

在这种情况下,我们使用单列GridLayout,每个复选框上都有一个EmptyBorder,以便在我们继续向下浏览菜单时将它们连续缩进更大的量。

Pizza Menu

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class OknoPizzaVlastna extends JFrame {

private String nazvy[] = {
"cesnak", "feferony", "hrasok", "cibula",
"kecup", "tatarskaOmacka", "vajce",
"kapia", "fazula", "kukurica", "ananas", "brokolica",
"Niva", "Mozarella", "olivy", "inovec udeny", "articoky",
"klobasa", "sampiony", "salama", "slanina", "hranolky", "tuniak",
"sunka", "kuracie maso", "syr", "Morska zmes", "bolonska zmes"
};

JPanel ui= new JPanel(new GridLayout(0,1,4,4));

private JCheckBox boxes[];

public OknoPizzaVlastna() {
ui.setBorder(new EmptyBorder(10,10,10,10));
setContentPane(ui);
boxes = new JCheckBox[nazvy.length];

for (int i = 0; i < nazvy.length; i++) {
createrCheckBox(i);
}

setTitle("Vlastna Pizza");
pack();
setVisible(true);
setResizable(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

public void createrCheckBox(int i) {
boxes[i] = new JCheckBox(nazvy[i]);
boxes[i].setBorder(new EmptyBorder(0,i*30,0,0));
ui.add(boxes[i]);
}

public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
JFrame frame = new OknoPizzaVlastna();
}
};
SwingUtilities.invokeLater(r);
}
}

关于Java 多个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23667013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com