承接上一個問題, 已經(jīng)解決了JPanel圓圈的繪制 和顏色的改變了
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比臨洮網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨洮網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋臨洮地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
概率設置問題, 也可以用隨即數(shù)產(chǎn)生
比如0.015 可以看成是15/1000 . 比如 [0,14]閉區(qū)間 一共有15個數(shù)字. 只要隨即產(chǎn)生的數(shù)字是[0,14]間,就可以認為滿足條件.
也就是說隨即數(shù)字范圍在[0,1000) 的左閉右開區(qū)間內, 只要小于15 就可以改變顏色為紅色
源代碼里需要修改代碼
//產(chǎn)生?1個集合,里面有1和0兩種元素,共計10個
private?ArrayListInteger?getList()?{
list.clear();//清空元素
Random?r=new?Random();
for?(int?i?=?0;?i??10;?i++)?{
if(r.nextInt(1000)15)?{//0.015?就是??15/1000???[0~14]共15個數(shù)字,在此區(qū)間的概率就是0.015
list.add(1);
totalRed+=1;
}else?{
list.add(0);
totalGreen+=1;
}
}
return?list;
}
應該是你的同學問過這個問題了,代碼發(fā)給你參考,你理解下思路,然后修改代碼吧,不要重復了
(點擊按鈕后,按鈕上的字母變紅)如果是敲鍵盤上的按鍵后變紅,也可以簡單的修改
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?LetterFrame?extends?JFrame{
public?LetterFrame()?{
for?(int?i?=?65;?i??91;?i++)?{
final?JButton?jb?=?new?JButton((char)i+"");
jb.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//按鈕背景變紅
//jb.setBackground(Color.RED);
//按鈕上的文字變紅
jb.setForeground(Color.RED);
}
});
this.add(jb);
}
this.setLayout(new?FlowLayout());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(360,?180,300?,200?);
this.setVisible(true);
}
public?static?void?main(String[]?args)?{
new?LetterFrame();
}
}
為你的這個按鈕添加監(jiān)聽器,在監(jiān)聽器中判斷你按下的是什么按鈕,如果是你按的這個按鈕:
設置一個全局變量,用來控制顏色變化,比如是0表示綠色,1表示紅色;
就這樣判斷下:
if(color==0)
{
setColor(new Color(.......));//設置為綠色
color=color+1;
}
else if(color==1)
{
setColor(new Color(.......));//設置為紅色
color=color-1;
}
類似這種,希望能幫到你!
這是因為檢出的項目使用的jdk與本地jdk不一致的導致的。
會出現(xiàn)這樣的情況,你可以comm.jar放到eclipse的項目中,選中這個jar包,右鍵-Build Path-Add to Build Path,這樣就可以了。
有時候你配置好環(huán)境,運行之后也能列出串口。但過一段時間后,找不到串口了,然而在設備管理器里還能看到串口,以前也能運行,環(huán)境不存在問題,重啟也沒用。你可以這樣解決,把win32com.dll復制到eclipse項目目錄下,然后在main方法一開始添加如下代碼,下面這樣不需要配置comm環(huán)境了
CommDriver driver = null;
String driverName = "com.sun點抗 m.Win32Driver";
try {driver = (CommDriver) Class.forName(driverName).newInstance();driver.initialize();}
catch (InstantiationException | IllegalAccessException
| ClassNotFoundException e) {// TODO Auto-generated catch block
e.printStackTrace();}