首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA写的这个图形为什么不能显示,该如何处理

2012-02-08 
JAVA写的这个图形为什么不能显示package org.paintimport java.awt.*import java.util.*import java.aw

JAVA写的这个图形为什么不能显示
package org.paint;

import java.awt.*;
import java.util.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;

import javax.swing.*;
public class Paint extends JFrame implements ActionListener {
  private JRadioButton jradiobutton_round,jradiobutton_rectangle;
  private JLabel jlabel_width,jlabel_length,jlabel_cir,jlabel_area;
  private JTextField text_width,text_length,text_cir,text_area;
  private JButton button_paint;
  private JPanel jpanel1,jpanel2,jpanel3;
  private RoundPaint roundpaint;
  public Paint()
  {
  super("绘制平面图形并计算周长和面积");
  Dimension dim =getToolkit().getScreenSize(); //获得分辨率
  this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  this.setBackground(java.awt.Color.lightGray);
   
  jradiobutton_round =new JRadioButton("圆形");
  jradiobutton_rectangle = new JRadioButton("矩形");
  ButtonGroup bgp = new ButtonGroup();
  bgp.add(jradiobutton_round);
  bgp.add(jradiobutton_rectangle);
  jradiobutton_round.setSelected(true);
  jlabel_width = new JLabel("宽度");
  jlabel_length = new JLabel("长度");
  text_length = new JTextField(10);
  text_width = new JTextField(10);
  button_paint = new JButton("绘图");
  button_paint.addActionListener(this);
  jpanel1 = new JPanel();
  jpanel1.setLayout(new FlowLayout(FlowLayout.LEFT));
  jpanel1.add(jradiobutton_rectangle);
  jpanel1.add(jradiobutton_round);
  jpanel1.add(jlabel_length);
  jpanel1.add(text_length);
  jpanel1.add(jlabel_width);
  jpanel1.add(text_width);
  jpanel1.add(button_paint);
   
  roundpaint = new RoundPaint();
  //jpanel2 = new JPanel();
  // jpanel2.add(roundpaint);
  // jpanel2.add(new JLabel("rrr"));
  this.getContentPane().add(roundpaint,BorderLayout.CENTER);
   
  jlabel_cir = new JLabel("周长");
  text_cir = new JTextField(10);
  jlabel_area = new JLabel("面积");
  text_area = new JTextField(10);
  jpanel3 = new JPanel();
  jpanel3.setLayout(new FlowLayout(FlowLayout.CENTER));
  jpanel3.add(jlabel_cir);
  jpanel3.add(text_cir);
  jpanel3.add(jlabel_area);
  jpanel3.add(text_area);
   
  //this.getContentPane().setLayout(new BorderLayout());
  this.getContentPane().add(jpanel1,BorderLayout.NORTH);
  this.getContentPane().add(jpanel3,BorderLayout.SOUTH);
  this.setVisible(true);
   
   
  }

public void actionPerformed(ActionEvent arg0) {
double a,b,cir,area;
try{
a = Double.parseDouble(text_length.getText());
b = Double.parseDouble(text_width.getText());

if(jradiobutton_rectangle.isSelected())
{
cir = 2*(a+b);
area = a*b;
}
else
{
cir = Math.PI*(1.5*(a+b)-Math.sqrt(a*b));
area =a*b*Math.PI;
}
text_cir.setText(""+cir);
text_area.setText(""+area);
roundpaint.repaint();
}
catch(Exception e)
{

}
finally


{

}

}

public static void main(String[] args) {

  new Paint();
}
class RoundPaint extends Canvas implements ComponentListener
{
public RoundPaint()
{
this.addComponentListener(this);
}
public void paint(Graphics g)
{  
try{


if(jradiobutton_round.isSelected())
g.fillRect(this.getWidth()/2, this.getHeight()/2,Integer.parseInt(text_width.getText()) , Integer.parseInt(text_length.getText()));
else
g.fillOval(this.getWidth()/2, this.getHeight()/2,Integer.parseInt(text_width.getText()) , Integer.parseInt(text_length.getText()));
}
catch(Exception e)
{

}
finally
{

}
}
public void componentResized(ComponentEvent e)
{
this.repaint();
}
public void componentMoved(ComponentEvent e){}
public void componentShown(ComponentEvent e){}
public void componentHidden(ComponentEvent e){}



}

}
这个该怎么改??

[解决办法]
帮顶吧
[解决办法]
LS的,你编译过吗?
[解决办法]
第一 楼主这个是可以画图的

第二有可能你没有看到 那就改下面这两个地方
 

if(jradiobutton_round.isSelected())
 g.fillRect(0, 0,Integer.parseInt(text_width.getText()) , Integer.parseInt(text_length.getText()));
 else
 g.fillOval(0,0,Integer.parseInt(text_width.getText()) , Integer.parseInt(text_length.getText()));
 }

热点排行