[英]Java swing GUI creation
我正在开发Java GUI,我需要:
我对流布局有一个奇怪的结果,有时它坚持可见的宽度,有时甚至在一行中设置了500个按钮。
我已经尝试了每种布局以及多窗格。 仍然没有运气。
请指导.. 只需要一个想法,不需要代码
更新了代码 :对不起,这是我对stackoverflow的第一个问题
感谢您的及时答复事实上,我尝试了很多,这是一个简单的方法。
setLayout(new FlowLayout());
setTitle("JAVA GUI");
setSize(500,500);
setVisible(true);
add(new JLabel("row 1"));
JPanel panel1 = new JPanel(new FlowLayout());
for(int i=0;i<200;i++){
panel1.add(new JButton("b"+i));
}
add(panel1);
这里panel1出现在单行中,该行超出了屏幕的可见部分。
我认为可以通过将maximumsize设置为Jframe来解决,但是不知道如何将其大小设置为FULL SCREEN。
您可以尝试MigLayout。 http://www.miglayout.com/
同样,这个问题并不是堆栈溢出的真正问题。 提出问题的一个好方法是发布您的代码,并告诉我们它有什么问题以及应该做什么。
虽然这不是“好的” stackOverflow问题的规范,但我自己对此没有任何问题。 有些人只能处理代码以外的任何东西。 我建议,如果您要发布代码,则麻烦您发布将进行编译,运行和演示情况的代码。 它确实可以帮助我们这些人了解您所看到的以及您想做的事情。
您谈论的是“行”; 请注意,行和列是诸如GridLayout和GridBagLayout之类的术语,但我认为它们不适合您所描述的内容。
在您的描述中,您没有说要滚动的内容。 看来您想要整个UI滚动,我现在假设是这样。
我会尝试使用带有垂直布局的BoxLayout的JPanel,用于整个主UI。 您将在其中添加一些内容:
第一个JPanel。
使用FlowLayout设置的另一个JPanel持有第一组按钮。
下一个JLabel的另一个JPanel
还有第四个JPanel(使用FlowLayout设置),其中包含第二组按钮。
现在,我将顶级面板放入JScrollPane中,然后将其放入Frame的CENTER部分(具有其默认的BorderLayout),然后看看会发生什么。 说实话,我不确定,但这就是我要开始的事情。
我无法告诉您,如果不运行代码,为什么有时会出现奇怪的行为。
如先前的评论所述,使用ContentPane是必经之路。 这是您想要的工作示例:
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("JAVA GUI");
JPanel panel1 = new JPanel();
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
int nbLines = 10;
for (int i = 0; i < nbLines; i++) {
JPanel linePanel = new JPanel(new FlowLayout());
linePanel.add(new JLabel("row " + i));
for(int j = 0; j < 50; j++) {
linePanel.add(new JButton("b" + j));
}
panel1.add(linePanel);
}
frame.setContentPane(panel1);
//frame.setSize(500, 500);
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.pack();
frame.setVisible(true);
}
}
这就是我得到的:
如果要使按钮向左对齐,可以使用:
JPanel linePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.