我一直在尝试使用文本设置JFrame但我遇到了麻烦。我可以创建JFrame,但我无法获得背景颜色或文本来使用它。
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
class FundManager {
JFrame window;
JPanel panel;
JLabel text;
public void createWindow()
{
//Create the window
window = new JFrame();
window.setVisible(true);
window.setSize(960, 540);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLocationRelativeTo(null);
//Create the panel
panel = new JPanel();
panel.setBackground(Color.RED);
//Create the label
text = new JLabel("test");
}
public static void main(String args[]) {
FundManager.createWindow();
}
}
我的createWindow()
方法未运行,我收到错误:
无法对非静态方法进行静态引用。
但是,当我将其设为静态时,整个程序就会中断。
答案 0 :(得分:2)
这里的问题是你需要一个FundManager实例才能调用createWindow()方法。请尝试下面的代码。
new FundManager().createWindow();
答案 1 :(得分:2)
首先,您无法调用FundManager.createWindow(),因为createWindow()不是静态方法。你需要一个FundManager实例。
此外,您不是将面板和文本字段添加到框架中。你只是宣布他们。这是一个快速示例,说明如何在框架内找到元素:
JFrame window;
JPanel panel;
JLabel text;
public void createWindow() {
// Create the window
window = new JFrame();
window.setVisible(true);
window.setSize(960, 540);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLocationRelativeTo(null);
// Create the panel
panel = new JPanel();
panel.setPreferredSize(new Dimension(500, 500));
panel.setBackground(Color.RED);
// Create the label
text = new JLabel("test");
text.setPreferredSize(new Dimension(200, 30));
text.setLocation(100, 100);
panel.add(text);
window.getContentPane().add(panel);
window.pack();
}
用以下方式运行:
new FundManager().createWindow();