有一个我以前没有遇到的非常简单的问题。在做项目之前我使用了类似的布局。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class q1
{
public static void main (String Args [])
{
q1Window showMe = new q1Window();
}
}
class q1Window
{
q1Window()
{
JFrame window = new JFrame("Tutorial 1");
window.setSize(600,600);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint (Graphics back)
{
back.setColor(Color.black);
back.fillRect(30,30,100,200);
}
}
现在我似乎无法打印任何JFrame显示的内容。
答案 0 :(得分:5)
您不能只将paint()方法添加到任何类。只有Swing组件才有绘画方法。
阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。
快速摘要是您需要覆盖JPanel的paintComponent()
方法,然后将面板添加到框架中。
答案 1 :(得分:-2)
正如camickr指出的那样,你需要一个Swing组件来做你想要的事情,在这种情况下,是要覆盖paint()
,尽管你应该覆盖paintComponent()
。
试试这个:
class q1 {
public static void main(String Args[]) {
q1Window showMe = new q1Window();
}
}
class q1Window extends JFrame {
q1Window() {
setTitle("Tutorial 1");
setSize(600, 600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics back) {
back.setColor(Color.black);
back.fillRect(30, 30, 100, 200);
}
}