package test3;
创新互联公司致力于互联网品牌建设与网络营销,包括网站建设、成都网站设计、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联公司为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联公司核心团队10多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;
public class ChangColor extends javax.swing.JFrame {
private JPanel jPanel1;
private JButton bntblue;
private JButton bntred;
private JTextPane txtpane;
private JScrollPane jScrollPane1;
public static void main(String[] args) {
ChangColor inst = new ChangColor();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
public ChangColor() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.setLayout(null);
{
jScrollPane1 = new JScrollPane();
jPanel1.add(jScrollPane1);
jScrollPane1.setBounds(54, 30, 274, 111);
{
txtpane = new JTextPane();
jScrollPane1.setViewportView(txtpane);
txtpane.setText("你好呀");
txtpane.setPreferredSize(new java.awt.Dimension(254,
100));
}
}
{
bntred = new JButton();
jPanel1.add(bntred);
bntred.setText("红色");
bntred.setBounds(35, 194, 70, 30);
bntred.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
txtpane.setForeground(Color.red);
}
});
}
{
bntblue = new JButton();
jPanel1.add(bntblue);
bntblue.setText("\u84dd\u8272");
bntblue.setBounds(121, 194, 70, 30);
bntblue.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
txtpane.setForeground(Color.blue);
}
});
}
}
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
}
为你的这个按钮添加监听器,在监听器中判断你按下的是什么按钮,如果是你按的这个按钮:
设置一个全局变量,用来控制颜色变化,比如是0表示绿色,1表示红色;
就这样判断下:
if(color==0)
{
setColor(new Color(.......));//设置为绿色
color=color+1;
}
else if(color==1)
{
setColor(new Color(.......));//设置为红色
color=color-1;
}
类似这种,希望能帮到你!
承接上一个问题, 已经解决了JPanel圆圈的绘制 和颜色的改变了
概率设置问题, 也可以用随即数产生
比如0.015 可以看成是15/1000 . 比如 [0,14]闭区间 一共有15个数字. 只要随即产生的数字是[0,14]间,就可以认为满足条件.
也就是说随即数字范围在[0,1000) 的左闭右开区间内, 只要小于15 就可以改变颜色为红色
源代码里需要修改代码
//产生 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个数字,在此区间的概率就是0.015
list.add(1);
totalRed+=1;
}else {
list.add(0);
totalGreen+=1;
}
}
return list;
}