gpt4 book ai didi

java - 我想更改从列表中选择的 "colorButton"的颜色。 (颜色由用户在列表中添加)

转载 作者:行者123 更新时间:2023-12-02 03:11:29 25 4
gpt4 key购买 nike

这是我的代码。当用户从列表中选择一种颜色并按“显示颜色”按钮时,“显示颜色”按钮的颜色应根据所选颜色更改。

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class A8 extends JFrame {
JList list;
JTextField inputField;
DefaultListModel model;
// String selected;

A8(){

model = new DefaultListModel();
model.addElement("RED");
list = new JList(model);

JButton addButton = new JButton("ADD");
addButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
String str = inputField.getText();
model.addElement(str);
}
}
);

JButton colorButton = new JButton("Show Color");
colorButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
String str = list.getSelectedValue().toString();
//JOptionPane.showMessageDialog(null, "It's "+ str);
// JOptionPane.setBackground(color.str);
colorButton.setBackground(Color.str);
}
}
);

inputField=new JTextField();
inputField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

}
}
);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );

JPanel inputPanel = new JPanel();
inputPanel.add( addButton);
inputPanel.add(colorButton);
colorButton.setBounds(20,50,100,20);
inputPanel.setLayout(new BoxLayout(inputPanel,BoxLayout.Y_AXIS));

inputField.setLayout(new FlowLayout());
inputField.setBounds(5, 5, 100, 100);
inputField.setPreferredSize(new Dimension(120,20));
JScrollPane scrollPane=new JScrollPane(list);
scrollPane.setPreferredSize(new Dimension(200,200));

Container container = getContentPane();
add(scrollPane);
container.add( inputPanel);
add( inputField);
container.setLayout(new FlowLayout());


//container.setBackground(Color.selected);

setDefaultCloseOperation( EXIT_ON_CLOSE );
setSize( 500, 250 );
setVisible( true );

}
public static void main( String args[] )
{
new A8();
}
}

请建议我应该在哪里更新代码。

最佳答案

colorButton.setBackground(Color.str);

上面的代码尝试引用 Color 类中不存在的变量。您可以这样组成一个变量名称。

解决问题的一种方法是创建您想要支持的颜色的 HashMap:

HashMap<String, Color> colors = new HashMap<String, Color>();
colors.put("RED", Color.RED);
...

然后在 ActionListener 中,您可以使用以下方法访问颜色:

String str = list.getSelectedValue().toString(); 
Color color = colors.get(str);
colorButton.setBackground( color );

关于java - 我想更改从列表中选择的 "colorButton"的颜色。 (颜色由用户在列表中添加),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40977860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com