java-在awt中更改按钮backgroundcolor
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在awt中更改按钮backgroundcolor,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2481字,纯文字阅读大概需要4分钟。
内容图文
![java-在awt中更改按钮backgroundcolor](/upload/InfoBanner/zyjiaocheng/693/409087e3afca4151a9c0338f9b288550.jpg)
所以我有一个称为Safe25的GUI程序.基本上,如果按正确的顺序按下按钮“ 15032018”,程序将自行关闭.
如果输入正确的数字,可以说您在开始时按了1,则按钮应将其背景色更改为绿色,如this:
如果您按下了错误的按钮,则按钮应将其颜色更改为红色.
但是我的代码的逻辑与我的问题无关.
如我所说,我想像链接图像一样更改按钮的backgroundcolor.我的问题是它更改了框架的背景颜色,而不是像this
重要的一行是75,我对此发表了评论.
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Safe25 extends Frame implements ActionListener {
JButton[] buttons;
Safe25() { // Konstruktor
setSize(250, 300);
setLocation(300, 300);
setTitle("Safe25");
buttons = new JButton[10];
for (int i = 0; i < 10; i++) { // 10 Kn?pfe im Array
buttons[i] = new JButton("" + i);
buttons[i].setFont(new Font("Courier", Font.BOLD, 34));
buttons[i].addActionListener(this); //
}
Panel panel0 = new Panel();
panel0.setLayout(new GridLayout(1, 1));
panel0.add(buttons[0]);
Panel panelRest = new Panel();
panelRest.setLayout(new GridLayout(3, 3));
setLayout(new GridLayout(2, 1));
for (int i = 1; i < 10; i++) {
panelRest.add(buttons[i]);
}
add(panel0); // Panel mit 0-Knopf
add(panelRest);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent wv) {
System.exit(0);
}
});
setVisible(true);
}
int s = 0;
public void actionPerformed(ActionEvent evt) {
// 0 1 2 3 4 5 6 7 8 Zust?nde ...
// 1-5-0-3-2-0-1-8 ist richtige Kombination
switch (Integer.parseInt(evt.getActionCommand())) {
case 0:
s = (s == 2 || s == 5) ? s + 1 : 0;
break;
case 1:
s = (s == 0 || s == 6) ? s + 1 : 1;
break;
case 2:
s = (s == 4) ? s + 1 : 0;
break;
case 3:
s = (s == 3) ? s + 1 : 0;
break;
case 5:
s = (s == 1) ? s + 1 : s == 7 ? 2 : 0;
break;
case 8:
s = (s == 7) ? s + 1 : 0;
break;
default:
s = 0;
}
Color col;
if (s == 0) {
col = Color.red;
} else { // richtiger Weg
col = Color.green;
}
if (s == 8) {
System.exit(0);
}
for (Component c : getComponents()) // line 75, i want this one
c.setBackground(col); // to change the buttons backgroundcolor
repaint(); // but it changes the frames backgroundcolor instead
}
public static void main(String[] args) {
Safe25 we = new Safe25();
}
}
解决方法:
您是否为JButton红色了javadoc?
编辑:
抱歉,我很快查看了您的代码.您现在正在做的是设置当前容器中每个组件的背景色.
当您的按钮数组是全局的时,您可以简单地再次遍历该集合,以获取正确的组件“按钮”并设置背景颜色,如下所示:
for (JButton b : buttons) // line 75, i want this one
b.setBackground(col); // to change the buttons backgroundcolor
repaint(); // but it changes the frames backgroundcolor instead
内容总结
以上是互联网集市为您收集整理的java-在awt中更改按钮backgroundcolor全部内容,希望文章能够帮你解决java-在awt中更改按钮backgroundcolor所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。