java程序设计基础教程第二版: p211_9

本文提供了一个使用Java进行基本矩形绘制的示例程序。通过继承Canvas类并重写paint方法来实现图形绘制,同时利用Frame搭建GUI界面,允许用户输入矩形的位置及尺寸参数,并在点击Paint按钮后更新画布上的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.*;
import java.awt.event.*;
class Mycanvas extends Canvas{
    int chang=0,kuan=0,x1=0,y1=0;
    Mycanvas(){
        setBackground(Color.cyan);
        }
  public void paint(Graphics g){
            g.fillRect(x1,y1,chang,kuan);
            }
    public void setPosition2(int x1,int y1,int chang,int kuan){
            this.x1=x1;
            this.y1=y1;
            this.chang=chang;
            this.kuan=kuan;
            }       
       
    }
class Frame1 extends Frame {
    Label label1=new Label("X"),
                label2=new Label("Y"),
                label3=new Label("WEIGHT"),
                label4=new Label("HEIGHT");
    TextField text1=new TextField("",5),
                        text2=new TextField("",5),
                        text3=new TextField("",5),
                        text4=new TextField("",5);
    Panel panel1=new Panel(),
                panel2=new Panel();
  Button bt1=new Button("Paint");
  Mycanvas mycanvas1=new Mycanvas();
    Frame1(String s){
        super(s);
        setLayout(new BorderLayout());
        panel1.add(label1);
        panel1.add(text1);
        panel1.add(label2);
        panel1.add(text2);
        add(panel1,BorderLayout.NORTH);
        add(mycanvas1,BorderLayout.CENTER);
        panel2.add(label3);
        panel2.add(text3);
        panel2.add(label4);
        panel2.add(text4);
        panel2.add(bt1);
        add(panel2,BorderLayout.SOUTH);
        bt1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    mycanvas1.setPosition2(Integer.parseInt(text1.getText()),
                                                                 Integer.parseInt(text2.getText()),
                                                               Integer.parseInt(text3.getText()),
                                                                 Integer.parseInt(text4.getText()));
                  mycanvas1.repaint();
                }
              catch(Exception e2){
                 
                  }
                }
            });
      setBounds(100,100,600,480);
      setVisible(true);
        }
    }
public class p211_9{
    public static void main(String args[]){
        new Frame1("new Frame1_DrawRect");
        }
   
}<PIXTEL_MMI_EBOOK_2005>2                                                           </PIXTEL_MMI_EBOOK_2005>

/**

呵呵,上面那1行是啥?

当初为了多看代码,就把代码下到手机中了,

上面的内容就是手机阅读器的痕迹

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值