Topic: 求助!!!请看下面源程序,编译没有错。运行时会报转换错误~急~!!!谢谢 |
Print this page |
1.求助!!!请看下面源程序,编译没有错。运行时会报转换错误~急~!!!谢谢 | Copy to clipboard |
Posted by: 22750124 Posted on: 2005-07-15 23:12 import java.awt.*; import java.awt.event.*; import javax.swing.*; class RectangleCurvePanel extends JPanel { Label tempx1Label=new Label(); Label tempy1Label=new Label(); Label tempx2Label=new Label(); Label tempy2Label=new Label(); public RectangleCurvePanel() { this.addMouseListener ( new MouseAdapter() { public void mousePressed(MouseEvent e) { tempx1Label.setText(Integer.toString(e.getX())); tempy1Label.setText(Integer.toString(e.getY())); } public void mouseReleased(MouseEvent e) { tempx2Label.setText(Integer.toString(e.getX())); tempy2Label.setText(Integer.toString(e.getY())); } } } int x1=Integer.parseInt(tempx1Label.getText()); int y1=Integer.parseInt(tempy1Label.getText()); int x2=Integer.parseInt(tempx2Label.getText()); int y2=Integer.parseInt(tempy2Label.getText()); int width=Math.abs(x1-x2); int hight=Math.abs(y1-y2); public void paintComponent(Graphics g) { if(x1<x2 && y1<y2)//右下方拉 { g.drawRect(x1,y1,width,hight); } else { if(x1<x2 && y1>y2)//右上方拉 { g.drawRect(x1,y2,width,hight); } else { if(x1>x2 && y1>y2)//左上拉 { g.drawRect(x2,y2,width,hight); } else { if(x1>x2 && y1<y2)//左下拉 { g.drawRect(x2,y1,width,hight); } else { System.out.println("不能画出矩开请重新拖~"); } } } } } } class RectangleCurve extends JFrame { public static void main(String[] args) { RectangleCurve xy=new RectangleCurve(); RectangleCurvePanel f=new RectangleCurvePanel(); JLabel titleLabel=new JLabel("Please drawing coordinate."); Container c=xy.getContentPane(); c.add(f,BorderLayout.CENTER); c.add(titleLabel,BorderLayout.NORTH); xy.setSize(500,350); xy.setVisible(true); } } |
2.Re:求助!!!请看下面源程序,编译没有错。运行时会报转换错误~急~!!!谢谢 [Re: 22750124] | Copy to clipboard |
Posted by: Jayzz Posted on: 2005-07-17 16:17 int x1=Integer.parseInt(tempx1Label.getText()); int y1=Integer.parseInt(tempy1Label.getText()); int x2=Integer.parseInt(tempx2Label.getText()); int y2=Integer.parseInt(tempy2Label.getText()); 这里会出错---NumberFormatException. 因为这些Label中没有合适的数据. 合适是指能够被转换为int型. |
3.Re:求助!!!请看下面源程序,编译没有错。运行时会报转换错误~急~!!!谢谢 [Re: 22750124] | Copy to clipboard |
Posted by: Jayzz Posted on: 2005-07-17 16:22 事实上, 你没有必要设置这几个Label, 完全可以使用这些int. 例如: tempx1Label.setText(Integer.toString(e.getX())); tempy1Label.setText(Integer.toString(e.getY())); 改为: x1 = e.getX(); y1 = e.getY(); |
4.Re:求助!!!请看下面源程序,编译没有错。运行时会报转换错误~急~!!!谢谢 [Re: 22750124] | Copy to clipboard |
Posted by: 22750124 Posted on: 2005-07-17 19:42 Label tempx1Label=new Label(); Label tempy1Label=new Label(); Label tempx2Label=new Label(); Label tempy2Label=new Label(); Label中应该给初始值,不给当然会报错,如下面 Label tempx1Label=new Label("1"); Label tempx1Label=new Label("2"); Label tempx1Label=new Label("3"); Label tempx1Label=new Label("4"); |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |