【发布时间】:2013-10-02 20:09:24
【问题描述】:
我有这段代码,我试图让图形在点击后出现,我试图找出如何做到这一点,但每次我尝试运行它时,它都会出错,我不知道如何修复以使其正常工作。
Exception in thread "main" java.lang.NullPointerException
at memor.main(memor.java:131)
Graphics g= pan.getGraphics();
代码
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import javax.swing.JButton;
public class memor extends JFrame
{
public static void main(String args[]){
final JPanel pan;
GridLayout h=new GridLayout(3,3);
pan =new JPanel(h);
JButton button1= new JButton("1");
pan.add(button1);
if (button1.isEnabled()){
Graphics g= pan.getGraphics();
g.setColor(new Color(156, 93, 82));
g.fill3DRect(21,3,7,12, true);
g.setColor(new Color(156,23,134));
g.fillOval(1,15,15,15);
g.fillOval(16,15,15,15);
g.fillOval(31,15,15,15);
g.fillOval(7,31,15,15);
g.fillOval(22,31,15,15);
g.fillOval(16,47,15,15);
}}
}
【问题讨论】:
-
Graphics g= pan.getGraphics();这不是处理custom painting 的正确方法。此外,将自定义绘画与您似乎想要的组件相结合是很棘手的。此外,对代码块使用一致且合乎逻辑的缩进。代码的缩进是为了帮助人们理解程序流程。 -
如果您只是选择忽略建议,我们为什么还要麻烦帮助您:previous similar question。如果建议使您感到困惑,请在评论中要求澄清,但不要盲目地忽略它,不断犯同样的错误,然后想知道为什么您的代码不起作用。
-
这是我第三次看到这段代码,至少我第三次看到人们(包括我自己)试图向你解释这不是你如何进行自定义绘画或处理
Graphics。查看performing custom painting 了解更多详情。投票结束...
标签: java swing graphics java-2d