现在用类的对象不会报错,但点击按钮不画线。
要调用的类:
import javax.swing.;
import java.awt.;
class SetPixel1 extends JPanel
{ Color color;
int startX,startY,endX,endY;
public SetPixel1()
{ color=Color.blue;
startX=50;
startY=50;
endX=150;
endY=150;
}
public void paintComponent(Graphics g)
{ g.setColor(color);
drawLine(g,startX,startY,endX,endY);
}
void drawLine(Graphics g,int x1,int y1,int x2,int y2)
{ g.drawLine(x1,y1,x2,y2);
}
}
写的代码:
import javax.swing.;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class SetPixel2 extends JPanel implements ActionListener
{ Color color;
int startX,startY,endX,endY;
JPanel jp=new JPanel();
JButton jb1=new JButton("画线");
public SetPixel2()
{ color=Color.blue;
startX=50;
startY=50;
endX=150;
endY=150;
jb1.addActionListener(this);
this.add(jb1);
}
void drawLine(Graphics g,int x1,int y1,int x2,int y2)
{ g.drawLine(x1,y1,x2,y2);
}
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton)e.getSource();
if(jb==jb1){
SetPixel1 s=new SetPixel1();
jp.add(s);
jp.setVisible(true);
this.add(jp);
}
//Graphics g = this.getGraphics().create();
// if(jb==jb1) {
// g.setColor(color);
// drawLine(g, startX, startY, endX, endY);
//}用这个能实现
}
}
public class huaxian2 extends JFrame
{ public huaxian2()
{ super("PixelColor");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(new Rectangle(100,100,300,300));
SetPixel2 set=new SetPixel2();
add(set);
}
public static void main(String[] args)
{ huaxian2 setPixel2=new huaxian2();
setPixel2.setVisible(true);
}
}