输入三角形的三边长,画出一个三角形(用java做)!

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:47:43
下面是我的源程序代码,编译没问题,执行就出错,高手帮看看谢谢!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class DrwTriangle extends JFrame{
/** Creates a new instance of DrwTriangle */

Canvas canvas=new Canvas();
JLabel sl=new JLabel("side length: ");
JLabel a=new JLabel("a:");
JLabel b=new JLabel("b:");
JLabel c=new JLabel("c:");
JTextField sl1=new JTextField(5);
JTextField sl2=new JTextField(5);
JTextField sl3=new JTextField(5);
JPanel p1=new JPanel(new FlowLayout());
JButton locate=new JButton("好的");

public DrwTriangle() {
p1.add(sl);
p1.add(a);
p1.add(sl1);
p1.add(b);
p1.add(sl2);
p1.add(c);
p1.add(sl3);
p1.add(locate);
canvas.setSize(

g 被你定义成 Graphics g=null;
canvas.paint(g); 肯定出错啦!
使用 canvas.repaint(); 重画就行了。
没有重写 canvas.paint() 方法,肯定画不出三角形。
Canvas canvas=new Canvas() {
public void paint(Graphics g) {
super.paint(g);
g.drawPolygon(new int[]{0,z,x20}, new int[]{0,0,y20}, 3);
}
};
去掉了多余的 xpt, ypt,并把
int z=0;
int x20=0;
int y20=0;
作为类 DrwTriangle 的成员。

Locate 只要实现 ActionListener 接口就行了。
---------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class DrwTriangle extends JFrame{
int z=0;
int x20=0;
int y20=0;
Canvas canvas=new Canvas() {
public void paint(Graphics g) {
super.paint(g);
g.drawPolygon(new int[]{0,z,x20}, new int[]{0,0,y20}, 3);
}
};
JLabe