我知道这可能很简单,但这给我带来了麻烦。当我使用paint()时,它什么也没显示,如果我使用paintComponent(),它会显示错误(找不到符号)。我做错了什么?
这是使用paint()的一个例子:
import javax.swing.*;
import java.awt.Graphics;
import java.awt.*;
public class Test extends JFrame {
public Test() {
this.setPreferredSize(new Dimension(400, 400));
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
super.paint(g);
// define the position
int locX = 200;
int locY = 200;
// draw a line (there is now drawPoint..)
g.drawLine(locX, locY, locX, locY);
}
public static void main(String[] args) {
Test test = new Test();
}
}
评论说这是一个很好而且简单的代码,但我看不到任何东西,因为它什么都没有显示。
[解决] 对所有回答的人,谢谢。大声笑我,我真的没有注意到有一个小点。太棒了,谢谢。
答案 0 :(得分:3)
您的代码不是推荐的做事方式,但除此之外,它可以运作。
您没有设置要绘制的颜色,并绘制一个点。你可能只是没看到它(我不得不看两次)。它在200,200处绘制一个黑色像素。
答案 1 :(得分:2)
我敢打赌问题是你只画了一个点,所以很难看出来。你的代码对我来说很好。
但是,您应该扩展JPanel,而不是JFrame。推荐阅读:http://docs.oracle.com/javase/tutorial/uiswing/painting/