?? 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 + -