當前位置:編程學習大全網 - 編程語言 - 【swing GUI編程】寫壹個紅綠燈的程序

【swing GUI編程】寫壹個紅綠燈的程序

公共?班級?測試?{

靜電?JTextField?redT?耶洛特?格林特;

靜電?JButton?startB,?stopB

靜電?LightPanel?LP;

公共?靜電?作廢?main(String[]?args)?{

show();

handle action();

}

私人?靜電?作廢?handleAction()?{

startB.addActionListener(新?ActionListener()?{

@覆蓋

公共?作廢?actionPerformed(ActionEvent?e)?{

LP . settimer(integer . parse int(redt . gettext()),

integer . parse int(yellow t . gettext()),

integer . parse int(greent . gettext());

startb . set enabled(false);

stopb . set enabled(true);

}

});

stopB.addActionListener(新?ActionListener()?{

@覆蓋

公共?作廢?actionPerformed(ActionEvent?e)?{

LP . stop light();

startb . set enabled(true);

stopb . set enabled(false);

}

});

}

靜電?作廢?show()?{

JFrame?f?=?新的?JFrame();

lp?=?新的?light panel();

f . add(LP);

JPanel?騙局?=?新的?JPanel();

f.add(con,BorderLayout。東);

con.setLayout(新?GridLayout(0,2));

雷德?=?新的?JTextField(" 3 ");

yellowT?=?新的?JTextField(" 1 ");

格林特?=?新的?JTextField(" 5 ");

JLabel?l?=?新的?JLabel("紅色?:?");

l . sethorizontal alignment(JLabel。拖尾);

con . add(l);

con . add(redT);

l?=?新的?JLabel("黃色?:?");

l . sethorizontal alignment(JLabel。拖尾);

con . add(l);

con . add(yellowT);

l?=?新的?JLabel("綠色?:?");

l . sethorizontal alignment(JLabel。拖尾);

con . add(l);

con . add(greenT);

startB?=?新的?JButton(" Start ");

stopB?=?新的?JButton(" stop ");

stopb . set enabled(false);

con . add(startB);

con . add(stopB);

f . pack();

f . setdefaultcloseoperation(3);

f . setlocationrelativeto(null);

f . set visible(true);

}

}

班級?LightPanel?延伸?JPanel?{

私人?int?尺寸?=?40;

私人?int?w,?h;

私人?定時器?t;

私人?int?r,?y,?g;

顏色?cr,?cy?CG;

int?我?=?0;

公共?LightPanel()?{

this.setPreferredSize(新?維度(200,?100));

this . set border(border factory . create line border(Color。灰色));

timer handle();

}

公共?作廢?交通信號燈()?{

我?=?0;

t . stop();

t . setinitialdelay(0);

cr?=?cy?=?cg?=?顏色.灰色;

repaint();

}

公共?作廢?setTimer(int?r,?int?y,?int?g)?{

這個. r?=?r?*?1000;

這個. y?=?y?*?1000;

這個. g?=?g?*?1000;

cr?=?cy?=?cg?=?顏色.灰色;

repaint();

t . restart();

}

私人?作廢?timerHandle()?{

t?=?新的?定時器(0,?新的?ActionListener()?{

布爾?旗幟?=?真實;

@覆蓋

公共?作廢?actionPerformed(ActionEvent?e)?{

切換?(我?%?3)?{

案子?0:

cr?=?顏色。紅色;

cy?=?cg?=?顏色.灰色;

repaint();

setinitialdelay(r);

t . restart();

打破;

案子?1:

cy?=?顏色.黃色;

cr?=?cg?=?顏色.灰色;

repaint();

t . setinitialdelay(y);

t . restart();

打破;

案子?2:

cg?=?顏色.綠色;

cy?=?cr?=?顏色.灰色;

repaint();

t . setinitial delay(g);

t . restart();

打破;

}

如果?(我?==?0)

旗幟?=?真實;

如果?(我?==?2)

旗幟?=?假的;

system . out . println(I);

如果?(旗幟)?{

i++;

}?其他

I-;

}

});

t . is repeats();

}

@覆蓋

公共?作廢?paintComponent(圖形?g)?{

w?=?this . getwidth();

h?=?this . getheight();

super . paint component(g);

drawRedLight(g,Cr);

drawYellowLight(g,cy);

drawGreenLight(g,CG);

}

私人?作廢?drawGreenLight(圖形?g,?顏色?c)?{

如果?(c?!=?空)

g . set color(c);

g .菲羅瓦爾(w?/?4?-?尺寸?/?2,?h?/?2?-?尺寸?/?2,?大小,?尺寸);

}

私人?作廢?drawYellowLight(圖形?g,?顏色?c)?{

如果?(c?!=?空)

g . set color(c);

g .菲羅瓦爾(w?/?4?*?2?-?尺寸?/?2,?h?/?2?-?尺寸?/?2,?大小,?尺寸);

}

私人?作廢?drawRedLight(圖形?g,?顏色?c)?{

如果?(c?!=?空)

g . set color(c);

g .菲羅瓦爾(w?/?4?*?3?-?尺寸?/?2,?h?/?2?-?尺寸?/?2,?大小,?尺寸);

}

}

  • 上一篇:紡織工程專業學什麽?紡織工程專業就業前景怎麽樣?
  • 下一篇:373訂扣機針桿上下不穩定是怎麽辦
  • copyright 2024編程學習大全網