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

📄 rosejframe.java

📁 java写的四叶玫瑰线的图形设计
💻 JAVA
字号:
//例6.06  四叶玫瑰线的图形设计。

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;

import java.awt.event.ComponentListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

import javax.swing.JFrame;
import javax.swing.JComboBox;

/*
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
*/

public class RoseJFrame extends JFrame implements ComponentListener, ItemListener
{
    private JComboBox combobox_color;            //颜色组合框
    
    public RoseJFrame()
    {
        super("四叶玫瑰线");
        this.setSize(600,400);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setLayout(new FlowLayout());        //流布局,居中
        
        Object data[]={Color.red, Color.green, Color.blue};
        combobox_color = new JComboBox(data);    //颜色组合框
        combobox_color.addItemListener(this);    //注册组合框的选择事件监听器
        this.add(combobox_color);
        
        this.addComponentListener(this);         //注册框架窗口的组件事件监听器
        this.setVisible(true);
    }
    
    public void paint(Graphics g)                //在JFrame上作图
    {
        int x0,y0;                               //原点坐标
        x0 = this.getWidth() /2;                 //窗口的宽度
        y0 = this.getHeight()/2; 

        g.setColor((Color)combobox_color.getSelectedItem());  //设置画线颜色为组合框选中颜色
        g.drawLine(x0,0,x0,y0*2);
        g.drawLine(0,y0,x0*2,y0);
        int j=40;
        while (j<200) 
        {
            for (int i=0;i<1023;i++)
            {
                double angle = i*Math.PI/512;
                double radius = j*Math.sin(2*angle);
                int x =(int) Math.round(radius * Math.cos(angle) * 2);
                int y =(int) Math.round(radius * Math.sin(angle));
                g.fillOval(x0+x,y0+y,1,1);       //画直径为1的圆就是一个点
            }
            j += 20;
        }
    }
    
    public void itemStateChanged(ItemEvent e)    //选中单选按钮时
    {
        repaint();                               //重画
    }
    
    public void componentResized(ComponentEvent e)   //改变窗口大小时
    {
        repaint();                               //重画
    }
    
    public void componentMoved(ComponentEvent e)    {  }
    public void componentHidden(ComponentEvent e)   {  }
    public void componentShown(ComponentEvent e)    {  }

    public static void main(String arg[])
    {
        new RoseJFrame();
    }
    
}




/*
程序存在问题:
1、程序启动时,窗口看不见组合框,当调整窗口大小之后,才能看见组合框,为什么?

*/

⌨️ 快捷键说明

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