我有一个JPanel、窗口和一组JPanel和JLabel。我想在JFrame中添加5个JPanel,在每个JPanel中添加一个JLabel。每个JPanel将用于表示有关骰子的数据。
但是,当我运行代码时,只有最后一个JPanel出现在JFrame上,并带有文本“Dice 4”。我不明白为什么。
守则:
public static void main(String args[]) {
JFrame window = new JFrame("DICE Frame");
window.setVisible(true);
window.setTitle("DIE");
window.setSize(400, 200);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel[] diceView=new JPanel[5];
JLabel[] labels=new JLabel[5];
for(int i=0; i<diceView.length; i++) {
diceView[i]=new JPanel();
window.add(diceView[i]);
labels[i]=new JLabel();
labels[i].setText("Dice "+i);
diceView[i].add(labels[i]);
}
}
您的JFrame
指定了默认的BorderLayout
。尝试使用不同的布局,例如:
window.setLayout(new FlowLayout());
您将看到您的其他JPanels。查看更多详细信息
因为你的掷骰子一次又一次地添加,骰子0,骰子1,骰子2,骰子3停留在骰子4下面,所以你只能看到骰子4。如果你想看到其他的骰子,那么你应该使用像flowlayout,boxlayout。。。
JFrame的contentPane(当您调用JFrame#add(…)时添加内容的内容)
)默认情况下使用BorderLayout,并且无论何时以默认方式向其添加组件,该组件都会添加BorderLayout。居中
解决方案是将其他JPanel添加到使用您认为必要的任何布局的JPanel(或使用布局的嵌套JPanel),然后将此容器JPanel添加到JFrame BorderLayout。居中
有关这方面的更多信息,请参阅布局管理器教程。需要理解的一个关键概念是,可以嵌套JPanel,每个都使用自己的简单布局管理器,从而仅使用简单易用的布局管理器实现复杂布局。
我想登录两种不同的用户类型。所以我这样编码。但是addListenerForSingleValueEvent中的for循环在此不起作用,请帮助。它好像不会进入for循环。请帮助我在这个登录卡。JAVA 火基
问题内容: 我在这里想到了这个循环: 它有效,但是我敢肯定有更好的方法 问题答案: 答案将取决于您使用的是哪种类型,例如,如果您使用的是a ,则可以使用类似… 假设您只想向表模型的末尾添加行;) 就个人而言,我希望将每个成员作为单个实体添加到表模型中,但这仅仅是我一个 看看如何使用表格了解更多详细信息…
我试图理解数组加法CoderByte问题的解决方案中的逻辑。这是问题提示——“使用JavaScript语言,让函数ArrayAdditionI(arr)获取存储在arr中的数字数组并返回字符串true,如果数组中的任何数字组合可以加到等于数组中的最大数字,否则返回字符串false。例如:如果arr包含[4, 6, 23, 10, 1, 3],则输出应该返回true,因为4 6 10 3 = 23。
如果我在问这个问题时犯了任何错误,我会提前道歉。我不熟悉stackoverflow和java。 我的问题是,我希望能够将一个普通的double数组转换为arraylist,我需要对这个arraylist元素进行操作,以便将值从x更改为-x(使用接口) 我正试图首先使用for循环元素逐个元素将数组double转换为arraylist(我认为应该先得到它),但.add似乎不起作用,这是我研究它时出现的
问题内容: 我在3个单独的类中有3个窗口,我想使用cardLayout,以便当你单击next按钮时,将出现下一个窗口。如何将包含不同元素的JPanels添加到一个cardLayout?这是第一个窗口:(尽管唯一的区别是背景-但它代表了我实际得到它的想法) 第二个窗口: 最后一个: 问题答案: 我做了一个小程序,希望程序中写的注释可以指导你了解如何使用CardLayout。