我已经尝试了很多不同的方法,但我会解释两个以及发生了什么(没有错误消息或任何东西,只是没有出现像他们应该或根本没有出现):
首先,我创建了一个名为layout的JPanel,并将其设置为BorderLayout。以下是我如何看待它的片段:
JPanel layout = new JPanel();
layout.setLayout(new BorderLayout());
colorChoice = new JLabel("Choose your color: ");
layout.add(colorChoice, BorderLayout.NORTH);
colorBox = new JComboBox(fireworkColors);
colorBox.addActionListener(this);
layout.add(colorBox, BorderLayout.NORTH);
在这种情况下,发生的事情是它们根本不显示。它只会继续我添加的任何其他内容。
然后我尝试了setLayout(new BorderLayout());以下是该代码的片段:
setLayout(new BorderLayout());
colorChoice = new JLabel("Choose your color: ");
add(colorChoice, BorderLayout.NORTH);
colorBox = new JComboBox(fireworkColors);
colorBox.addActionListener(this);
add(colorBox, BorderLayout.NORTH);
在这种情况下,它们被添加,但宽度占据了框架的整个宽度,文本字段(未显示在代码段中)基本上占用了其他所有内容。
以下是我的尝试: setPreferredSize()&的setSize()
我还缺少其他东西吗?谢谢。
我还应该注意,这是一个单独的类,这个类中没有main。我之所以这么说,是因为我扩展了JPanel而不是JFrame。我见过一些人扩展JFrame并使用JFrame,但我还没有尝试过。
答案 0 :(得分:4)
更新
您无需延长JFrame
。我从来没有这样做,相反,我总是延伸JPanel
。这使我的自定义组件更加灵活:可以将它们添加到另一个面板中,也可以将它们添加到框架中。
所以,为了证明这个问题,我将制作一个完整的小程序:
public class BadGui
{
public static void main(String[] argv)
{
final JFrame frame = new JFrame("Hello World");
final JPanel panel = new JPanel();
panel.add(new JLabel("Hello"), BorderLayout.NORTH);
panel.add(new JLabel("World"), BorderLayout.SOUTH);
frame.setVisible(true);
}
}
在这个程序中,我创建了一个面板,但没有将其添加到任何内容中,因此它永远不可见。
在下一个程序中,我将通过将面板添加到框架来修复它。
public class FixedGui
{
public static void main(String[] argv)
{
final JFrame frame = new JFrame("Hello World");
final JPanel panel = new JPanel();
panel.add(new JLabel("Hello"), BorderLayout.NORTH);
panel.add(new JLabel("World"), BorderLayout.SOUTH);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
请注意,在这两个中,当我向面板添加内容时,我选择了不同的布局参数(一个标签我放在'North'而另一个标签放在'South')。
答案 1 :(得分:1)
以下是带有BorderLayout的yourapp.appspot.com/_ah/api/explorer
示例,其中添加了JPanel
按钮和标签到“North”
JPanel
答案 2 :(得分:0)
以下建议假设您延长JFrame
。
首先,如果没有看到 所有内容 ,那么您可以尝试各种各样的事情。
首先,在您加载所有内容后,请尝试添加此内容(再次,假设您的扩展 JFrame
:
revalidate();
repaint();
我一直将它添加到我自己的Swing项目中,因为它刷新并检查是否所有内容都在框架上。
如果这不起作用,请确保将JComponent
所有JPanel
添加到JPanel
,并且只有JFrame
位于JFrame
上JPanel
1}}。你的JPanel window = new JPanel();
JButton button = new JButton("Press me");
add(window);
window.add(button); // Notice how it's the JPanel that holds my components.
无法解决所有问题; JMenu
做到了。
JFrame
但有一件事,您仍然会通过JPanel
而不是def __call__(self):
self.request.response.setHeader('X-Theme-Disabled', '1')
return self.template()
添加public int emptyRows(JTable table) {
int emptyRows = 0;
rowSearch: for (int row = 0; row < table.getRowCount(); row++) { //Iterate through all the rows
for (int col = 0; col < table.getColumnCount(); col++) { //Iterate through all the columns in the row
if (table.getValueAt(row, col) != null) { //Check if the box is empty
continue rowSearch; //If the value is not null, the row contains stuff so go onto the next row
}
}
emptyRows++; //Conditional never evaluated to true so none of the columns in the row contained anything
}
return emptyRows;
}
和什么内容。