package other;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;public class paint2 extends JFrame{
static JPanel p;
public static JPanel f()
{
p=new JPanel();
p.setLayout(new BorderLayout());
Graphics g=p.getGraphics();
g.setColor(p.getForeground());
g.drawLine(1, 1, 50, 50);
return p;
}
public static void main(String[] main){
paint2 a = new paint2();
a.setSize(600,400);
a.add(f());
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a.setVisible(true);
}
}
为什么这个会运行错误?该怎么改?
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;public class paint2 extends JFrame{
static JPanel p;
public static JPanel f()
{
p=new JPanel();
p.setLayout(new BorderLayout());
Graphics g=p.getGraphics();
g.setColor(p.getForeground());
g.drawLine(1, 1, 50, 50);
return p;
}
public static void main(String[] main){
paint2 a = new paint2();
a.setSize(600,400);
a.add(f());
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a.setVisible(true);
}
}
为什么这个会运行错误?该怎么改?
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TestApplet extends Applet
{
String strFont;
int xOrigin,yOrigin;
public void init()
{ strFont=getParameter("font");
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
xOrigin=e.getX();
yOrigin=e.getY();
}
public void mouseReleased(MouseEvent e)
{
Graphics g=getGraphics();
g.setColor(Color.blue);
g.drawLine(xOrigin,yOrigin,e.getX(),e.getY());
}
});
}
public void start()
{
System.out.println("start");
}
public void stop()
{
System.out.println("stop");
}
public void destroy()
{
System.out.println("destroy");
}
public void paint(Graphics g)
{
Font f=new Font(strFont,Font.BOLD,30);
g.setFont(f);
g.setColor(Color.blue);
g.drawString("维新科学",0,30);
}
}
就是setVisible(true)出来之前
graphics是默认为null的
说明之后graphics是空的