我知道之前曾问过这个问题,但没有答案。
在Java中,当我向框架添加组件时,在初始化应用程序时,不会渲染添加JTextField后的所有元素。它们在刷新屏幕后呈现,例如最小化和最大化屏幕。在下文中,仅渲染文本字段。它看起来像是一些Java渲染问题。
我的代码如下:
private void initialize() {
frame = new JFrame();
frame.setVisible(true);
frame.setBounds(100, 100, 569, 321);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
txtGenerationRate = new JTextField();
txtGenerationRate.setBounds(322, 29, 86, 20);
frame.getContentPane().add(txtGenerationRate);
txtGenerationRate.setColumns(10);
lblAmountOfSolarPanelsText = new JLabel("Amount of solar panels:");
lblAmountOfSolarPanelsText.setBounds(10, 57, 159, 14);
frame.getContentPane().add(lblAmountOfSolarPanelsText);
frame.setVisible(true); // added it for the second time, just to make sure
}
有人可以帮忙吗?
·彼得
答案 0 :(得分:2)
首先,您一定要阅读有关如何使用布局的信息:http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html
第二件事,你应该在添加所有组件后设置你的框架,如果你没有,你必须调用repaint()。
答案 1 :(得分:1)
尝试将其放在initialize方法的底部
frame.setVisible(true);
frame.setBounds(100, 100, 569, 321);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
答案 2 :(得分:0)
您还可以尝试frame.revalidate();
和frame.repaint();
答案 3 :(得分:0)
这似乎对我有用,当窗口首次出现时,我会看到标签和文本字段。标签文本不适合标签,因此被截断,但除了一切看起来如预期之外。在尝试简化代码时,可能是从代码中删除了错误的片段?