我正在为我的老板建立一个数字生成器,可以在每个方面进行自定义。
我可以保存加载开始和结束值等但我无法保存并加载用户选择的前景色。
我的单选按钮选择前景色:
rGreen.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
if (rGreen.isSelected()){
sColour.setText("GREEN");
String gr = sColour.getText();
if (gr =="GREEN"){
tNumber.setForeground(Color.GREEN);
rRed.setEnabled(false);
rBlue.setEnabled(false);
rYellow.setEnabled(false);
rPink.setEnabled(false);
rPurple.setEnabled(false);
rWhite.setEnabled(false);
rOrange.setEnabled(false);
}
}else
{
tNumber.setForeground(Color.WHITE);
rRed.setEnabled(true);
rBlue.setEnabled(true);
rYellow.setEnabled(true);
rPink.setEnabled(true);
rPurple.setEnabled(true);
rWhite.setEnabled(true);
rOrange.setEnabled(true);
}
}
}
);
保存配置
bSave = new JButton("Save");
bSave.setFont(new Font("Tahoma", Font.BOLD, 11));
bSave.setInheritsPopupMenu(true);
mnConfiguration.add(bSave);
bSave.addActionListener(this);
f.setVisible(true);
// ----------------Save Config------------------------------
bSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
saveProperties();
JOptionPane.showMessageDialog(f,
"Properties were saved successfully!");
} catch (IOException ex) {
JOptionPane.showMessageDialog(f,
"Error saving properties file: " + ex.getMessage());
}
}
});
try {
loadProperties();
} catch (IOException ex) {
JOptionPane
.showMessageDialog(f,
"The config.properties file does not exist, default properties loaded.");
}
tName.setText(configProps.getProperty("Name"));
tFrom.setText(configProps.getProperty("Start"));
tTo.setText(configProps.getProperty("End"));
sColour.setText(configProps.getProperty("Colour"));
tTitle.setText(tName.getText());
保存并加载
// -----------------------Saving-----------------------
private void saveProperties() throws IOException {
configProps.setProperty("Name", tName.getText());
configProps.setProperty("Start", tFrom.getText());
configProps.setProperty("End", tTo.getText());
configProps.setProperty("Colour", sColour.getText());
OutputStream outputStream = new FileOutputStream(configFile);
configProps.store(outputStream, "host setttings");
outputStream.close();
}
// ------------------------Loading--------------
private void loadProperties() throws IOException {
Properties defaultProps = new Properties();
// sets default properties
defaultProps.setProperty("Name", "Randomiser");
defaultProps.setProperty("Start", "1");
defaultProps.setProperty("End", "100");
defaultProps.setProperty("Colour", "WHITE");
configProps = new Properties(defaultProps);
// loads properties from file
InputStream inputStream = new FileInputStream(configFile);
configProps.load(inputStream);
inputStream.close();
}
所以我想如果按下绿色单选按钮,JTextField
将变为绿色,如果文本字段为绿色,则会将前景色更改为绿色。但是发生的事情是文本字段变为绿色,但前景不会发生变化。
我在这里做错了什么?