Meu programa dá a seguinte mensagem de erro:
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
Syntax error on token "{", yield expected after this token
O erro acontece no método actionPerformed(ActionEvent event), logo na linha da chave aberta do primeiro if aparece a mensagem: Syntax error on token “{”, yield expected after this token.
Agradeço a quem poder me retornar um feedback!
package exercicios;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class ColorSelect extends JFrame {
private final String[] names = {"RED", "BLUE", "YELLOW", "GREEN", "BLACK", "WHITE", "ORANGE"};
private final Color[] cores = { Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN, Color.BLACK, Color.WHITE, Color.ORANGE };
private final JComboBox<String> comboBox;
private final JRadioButton background, foreground;
private final ButtonGroup grupo;
private final JButton ok, cancel;
private final JPanel painel, painel2;
private final Handler handler;
ColorSelect() {
super("Seleção de cor");
this.handler = new Handler();
this.comboBox = new JComboBox<>(names);
this.background = new JRadioButton("Background");
this.foreground = new JRadioButton("Foreground");
this.grupo = new ButtonGroup();
this.ok = new JButton("Ok");
this.cancel = new JButton("Cancel");
this.painel = new JPanel(new FlowLayout());
this.painel2 = new JPanel(new FlowLayout());
this.comboBox.addItemListener(handler);
this.background.addItemListener(handler);
this.foreground.addItemListener(handler);
this.ok.addActionListener(handler);
this.cancel.addActionListener(handler);
this.comboBox.setMaximumRowCount(3);
this.grupo.add(background);
this.grupo.add(foreground);
this.painel.add(background);
this.painel.add(foreground);
this.painel2.add(ok);
this.painel2.add(cancel);
this.add(comboBox, BorderLayout.NORTH);
this.add(painel, BorderLayout.CENTER);
this.add(painel2, BorderLayout.SOUTH);
initGUI();
}
public void initGUI() {
this.setDefaultCloseOperation(ColorSelect.EXIT_ON_CLOSE);
this.setSize(300, 130);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
private class Handler implements ItemListener, ActionListener {
private Color cor;
private boolean backgroundMarcado;
private boolean foregroundMarcado;
@Override
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
cor = cores[comboBox.getSelectedIndex()];
} else if (background.isSelected()) {
backgroundMarcado = true;
foregroundMarcado = false;
} else if (foreground.isSelected()) {
foregroundMarcado = true;
backgroundMarcado = false;
}
}
@Override
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand().equals("Ok")) {
backgroundMarcado ? alterarCorDoFundo() : alterarCorDosComponentes();
} else if (event.getSource().equals(cancel)) {
cor = new Color(238,238,238);
}
}
private void alterarCorDoFundo() {
painel.setBackground(cor);
painel2.setBackground(cor);
}
private void alterarCorDosComponentes() {
background.setBackground(cor);
foreground.setBackground(cor);
ok.setBackground(cor);
cancel.setBackground(cor);
}
}
public static void main(String[] args) {
new ColorSelect();
}
}