每个我可以用作数组的循环吗? 好像值改变了会改变颜色的颜色,如果是,那么颜色将恢复正常
顺便说一下我是java的新手
private void bt1MouseClicked(java.awt.event.MouseEvent evt)
{
if (txt1.getText().equals("6652") ) {
txt1.setBackground(Color.yellow);
}
if (txt2.getText().equals("6652") ) {
txt2.setBackground(Color.yellow);
}
if (txt3.getText().equals("6652") ) {
txt3.setBackground(Color.yellow);
}
}
答案 0 :(得分:1)
您可以将JTextField
与String
相关联的数据结构。
您可以使用Map<JTextField, String>
对象:
Map<JTextField, String> map = new HashMap<>();
// add elements in
map.put(textField1, "6652");
map.put(textField2, "1142");
map.put(textField3, "2231");
...
private void bt1MouseClicked(java.awt.event.MouseEvent evt)
// iterate on it
for (Entry<JTextField, String> entry : map.entrySet()) {
JTextField field = entry.getKey();
String value = entry.getValue();
if (field.getText().equals(value)) {
field.setBackground(Color.yellow);
}
}
}
答案 1 :(得分:1)
您应该从可迭代的模型对象生成文本框。这样,您就可以完全控制生成的所有文本框。对于这种情况,davidxx的答案要好得多,但因为你是初学者......
您可以拥有两个数组
TextBox[] tbs = new TextBox[35];
String[] vals = new String[];
public void initStrings()
{
// fill vals here, manually or automatically
}
public void setProperties(String[] vals1)
{
for(int i = 0; i < tbs.length; i++)
{
tbs[i] = new TextBox();
vals[i] = vals1[i];
// Do more with your textbox here
}
}
public void refreshTextBoxes()
{
for(int i = 0; i < tbs.length; i++)
{
if (tbs[i].getText().equals(vals[i])
{
tbs[i].setBackground(Color.yellow);
}
}
}
private void bt1MouseClicked(java.awt.event.MouseEvent evt)
{
refreshTextBoxes();
// Do more here, if you like.
}
答案 2 :(得分:0)
将所有文本框保存在文本框列表中,然后您可以遍历所有文本框以更新它们。像这样。
List<TextBox> text_boxes = new ArrayList<>();
然后添加您想要检查的所有文本框,
text_boxes.add(text_box1);
text_boxes.add(text_box2);
...
text_boxes.add(text_box34);
然后有一个方法来更改匹配像
这样的条件的文本框的值private void changeColor(TextBox tex1)
{
if (txt1.getText().equals("6652") ) {
txt1.setBackground(Color.yellow);
}
if (txt2.getText().equals("1142") ) {
txt2.setBackground(Color.yellow);
}
if (txt3.getText().equals("2231") ) {
txt3.setBackground(Color.yellow);
}
}
然后在按钮的单击处理程序中,您可以遍历所有文本框以更新颜色
private void bt1MouseClicked(java.awt.event.MouseEvent evt)
{
//loop through the list
for (TextBox text_box : text_boxes) {
changeColor(text_box);
}
}
答案 3 :(得分:0)
string [] txtfield = {&#34; 1122&#34;,&#34; 2231&#34;,&#34; 3344&#34;}并在循环中使用