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