import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class 图形界面入门 {
public static void main(String argv[])
{draw p=new draw();
}
}
class draw extends JFrame
{
public draw()
{setLayout(new GridLayout(2,1));
getContentPane().add(new in1());
getContentPane().add(new in());
Dimension p=Toolkit.getDefaultToolkit().getScreenSize();
int x=p.width;
int y=p.height;
setLocation((x-500)/2,(y-500)/2);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class in extends JPanel
{
private JButton p;
private JButton q;
private in1 s=new in1();
public in()
{p=new JButton( "OK ");
q=new JButton( "Cancel ");
add(p);
add(q);
p.addActionListener(s);
q.addActionListener(s);
}
}
class in1 extends JPanel implements ActionListener
{private Graphics g;
public void actionPerformed(ActionEvent e)
{g=getGraphics();
super.paintComponent(g);
if(e.getActionCommand().equals( "OK "))
//总是下面这里出错
g.drawString( "OK is clicked ",getWidth()/2,getHeight()/5);
if(e.getActionCommand().equals( "Cancel "))
//总是下面这里出错
g.drawString( "Cancel is clicked ",getWidth()/2,getHeight()/5);
g.dispose();
}
}
这里是问题
Exception in thread "AWT-EventQueue-0 " java.lang.NullPointerException
at in1.paintComponent(图形界面入门.java:61)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)