📄 rosejframe.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 + -