⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rose1.java

📁 一个Java的典型实例
💻 JAVA
字号:
//本程序演示:
//声明的类 Rose1是组件类Componentd 的子类,可以重写 paint(Graphics g) 方法。
//在选择事件类接口itemStateChanged(ItemEvent e)方法中,使用三种方法来判断选中的是哪个按钮。
import java.awt.*;
import java.awt.event.*;
public class Rose1 extends Frame 
             implements WindowListener,ComponentListener,ItemListener
  //声明的类 Rose1是组件类Componentd 的子类。实现:改变窗口大小事件接口、组件事件接口、选择事件接口。
{
    int width1=600,height1=400;  //窗口尺寸。 
    Color color = Color.blue;   //创建颜色,画线的默认颜色。
    CheckboxGroup cg1 ;//(单选按钮的)复选框组。
    Checkbox  cb1,cb2,cb3;//三个单选按钮(选择颜色)。
    public Rose1()//构造方法,供77行初始化使用。
    {
        setTitle("四页玫瑰线");//窗口标题。
        setSize(width1,height1);//窗口大小。
        setBackground(Color.white);//窗口背景色。
        setLayout(new FlowLayout());//Panel(面板)类的默认布局(按行排放,132页8行)。
        addWindowListener(this);//为窗口事件(关闭窗口时)注册监听程序,与56行关联。(关闭窗口时触发,见129页5行。)
        addComponentListener(this);//为组件事件注册监听程序(改变窗口大小时,见128页倒数4行)。与60行关联。。
        cg1 = new CheckboxGroup();//复选框组件实例化。
        cb1 = new Checkbox("blue",cg1,true);//单选按钮实例化,默认为兰色。
        cb2 = new Checkbox("red",cg1,false);//cg1:复选框组件名不能少。
        cb3 = new Checkbox("green",cg1,false);//cg1:复选框组件名不能少。
        cb1.addItemListener(this);//为选择事件(三个单选按钮)注册监听程序。
        cb2.addItemListener(this);//this ,在本类中出发。
        cb3.addItemListener(this);
        add(cb1);//将三个单选按钮添加到框架中。
        add(cb2);
        add(cb3);
    }
    public void paint(Graphics g) //开始画图。
    {              //Graphics g :创建对象g,以对象作参数。
        int x0,y0;  //原点坐标。
        x0 = width1 /2;//宽度减半。
        y0 = height1 /2;
        g.setColor(color);//设置图形颜色为兰色(Color:见11行)。
        g.drawLine(x0,0,x0,height1);//画十字竖线。
        g.drawLine(0,y0,width1,y0);//画十字横线。
        int i,j=40,x,y;
        double pi=3.14,angle,r;//定义角度、半径。
        while  (j<200) //画图;j,图形外形。可改变值300、
        {
            for (i=0;i<1023;i++)
            {
                angle = i*pi/512;//定义角度。
                r = j*Math.sin(2*angle);//半径。
                x =(int) Math.round(r*Math.cos(angle)*2);//数学类转换函数。角度余弦。
                y =(int) Math.round(r*Math.sin(angle));//数学类转换函数。角度正弦。
                g.fillOval(x0+x,y0+y,1,1); //每循环一次,画椭圆一个点。。
            }
            j = j + 20;
        }
    }
    public void windowClosing(WindowEvent e)//关闭窗口时触发,见129页5行。
    {
        System.exit(0);//关闭窗口。
    }
    public void componentResized(ComponentEvent e)   //改变组件(窗口)大小时(见128页倒数4行)。与21行关联。
    {  
        width1 = getWidth();   //图形扩大(点击窗口最大化时使用)。
        height1 = getHeight(); 
    }
    public void itemStateChanged(ItemEvent e)
    {                           //单击单选按钮时。
        if (e.getSource()==cb1)  //判断产生事件对象e的组件是哪一个。
            color = Color.blue;
        if (cb2.getState())      //判断单选按钮cb2的状态
            color = Color.red;
        if (cg1.getSelectedCheckbox()==cb3) //判断复选框组cg1选中的是谁
            color = Color.green;
        repaint(); //根据所选颜色重新画图,如无此行,选择颜色时就不画图了。。
    }
    public static void main(String arg[])
    {              //创建并显示Frame对象,Frame作为画布
        new Rose1().setVisible(true);//创建对象,调用14行初始化。
    }
    public void componentMoved(ComponentEvent e)    {  }//必须写上接口中剩余的空方法。
    public void componentHidden(ComponentEvent e)   {  }
    public void componentShown(ComponentEvent e)    {  }
    public void windowOpened(WindowEvent e)         {  }
    public void windowActivated(WindowEvent e)      {  }
    public void windowDeactivated(WindowEvent e)    {  }
    public void windowClosed(WindowEvent e)         {  }
    public void windowIconified(WindowEvent e)      {  }
    public void windowDeiconified(WindowEvent e)    {  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -