Witam, mam problem z utworzeniem listy rozwijanej nadającej kolor czcionki w projekcie notatnik. Kod wygląda tak:
public class Notatnik extends JFrame implements ActionListener {
private JTextArea textArea;
private JComboBox kolorList;
public Notatnik() {
setTitle("Notatnik");
Toolkit zestaw = Toolkit.getDefaultToolkit();
Dimension rozmiarEkranu = zestaw.getScreenSize();
int szerEkranu = rozmiarEkranu.width;
int wysEkranu = rozmiarEkranu.height;
setBounds(szerEkranu / 4, wysEkranu / 4, szerEkranu / 2, wysEkranu / 2);
setResizable(false);
setJMenuBar(doPasekMenu());
textArea = new JTextArea();
JScrollPane sp = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
setLayout(new BorderLayout());
add(sp, BorderLayout.CENTER);
JPanel panelLewy = new JPanel(new FlowLayout(FlowLayout.CENTER));
JPanel panelSrodek = new JPanel(new FlowLayout(FlowLayout.CENTER));
JPanel panelPrawy = new JPanel(new FlowLayout(FlowLayout.CENTER));
JPanel panelPrzyciski = new JPanel(new GridLayout(1, 2));
panelPrzyciski.add(panelLewy);
panelPrzyciski.add(panelSrodek);
panelPrzyciski.add(panelPrawy);
add(panelPrzyciski, BorderLayout.SOUTH);
JToggleButton tytul = new JToggleButton("Tytuł");
JButton podpis = new JButton("Podpis");
panelLewy.add(tytul);
tytul.addActionListener(this);
tytul.setActionCommand("41");
panelLewy.add(podpis);
podpis.addActionListener(this);
podpis.setActionCommand("42");
JRadioButton bi = new JRadioButton("Biały", true);
JRadioButton zo = new JRadioButton("Żółty");
JRadioButton zi = new JRadioButton("Zielony");
ButtonGroup bg1 = new ButtonGroup();
bg1.add(bi);
bg1.add(zo);
bg1.add(zi);
bi.addActionListener(this);
zo.addActionListener(this);
zi.addActionListener(this);
bi.setActionCommand("51");
zo.setActionCommand("52");
zi.setActionCommand("53");
panelPrawy.add(bi);
panelPrawy.add(zo);
panelPrawy.add(zi);
Border obramowanie1 = BorderFactory.createEtchedBorder();
panelLewy.setBorder(obramowanie1);
Border obramowanie2 = BorderFactory.createEtchedBorder();
panelPrawy.setBorder(obramowanie2);
Border obramowanie3 = BorderFactory.createEtchedBorder();
panelSrodek.setBorder(obramowanie3);
String[] czKolory = {"czerwona", "zielona", "niebieska", "czarna", "biala"};
JLabel etyKolory = new JLabel("Kolor czcionki: ");
JComboBox kolorList = new JComboBox(czKolory);
kolorList.setSelectedIndex(3);
panelSrodek.add(etyKolory);
panelSrodek.add(kolorList);
JComboBox komboBox = (JComboBox) (e.getSource()); // podkreśla e, o co chodzi?
}
private JMenuBar doPasekMenu() {
JMenuBar pasek = new JMenuBar();
JMenu mPlik = new JMenu("Plik");
JMenuItem otworz = new JMenuItem("Otwórz");
JMenuItem zapisz = new JMenuItem("Zapisz");
JMenuItem zakoncz = new JMenuItem("Zakończ");
mPlik.add(otworz);
otworz.addActionListener(this);
otworz.setActionCommand("11");
mPlik.add(zapisz);
zapisz.addActionListener(this);
zapisz.setActionCommand("12");
mPlik.addSeparator();
mPlik.add(zakoncz);
zakoncz.addActionListener(this);
zakoncz.setActionCommand("13");
otworz.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));
zapisz.setAccelerator(KeyStroke.getKeyStroke("ctrl Z"));
zakoncz.setAccelerator(KeyStroke.getKeyStroke("ctrl K"));
JMenu mEdycja = new JMenu("Edycja");
JRadioButtonMenuItem powiekszC = new JRadioButtonMenuItem("Czcionka mała", true);
JRadioButtonMenuItem pomniejszC = new JRadioButtonMenuItem("Czcionka duża");
powiekszC.addActionListener(this);
powiekszC.setActionCommand("21");
pomniejszC.addActionListener(this);
pomniejszC.setActionCommand("22");
JMenuItem wyczysc = new JMenuItem("Wyczyść");
wyczysc.setAccelerator(KeyStroke.getKeyStroke("ctrl D"));
wyczysc.addActionListener(this);
wyczysc.setActionCommand("23");
mEdycja.add(powiekszC);
mEdycja.add(pomniejszC);
mEdycja.addSeparator();
mEdycja.add(wyczysc);
ButtonGroup bg = new ButtonGroup();
bg.add(powiekszC);
bg.add(pomniejszC);
JMenu mPomoc = new JMenu("Pomoc");
JMenuItem oAutorze = new JMenuItem("O Autorze");
mPomoc.add(oAutorze);
oAutorze.addActionListener(this);
oAutorze.setActionCommand("31");
mPlik.setMnemonic('P');
mEdycja.setMnemonic('E');
mPomoc.setMnemonic('o');
pasek.add(mPlik);
pasek.add(mEdycja);
pasek.add(mPomoc);
return pasek;
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
Notatnik nt = new Notatnik();
nt.setVisible(true);
nt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} catch (java.lang.Exception ed) {
System.out.println("Błąd!");
}
}
@Override
public void actionPerformed(ActionEvent e) {
switch (Integer.parseInt(e.getActionCommand())) {
case 11: {
JFileChooser pliki = new JFileChooser(".");
if (JFileChooser.APPROVE_OPTION == pliki.showOpenDialog(this)) {
try {
File f = pliki.getSelectedFile();
setTitle(f.getAbsolutePath() + " Notatnik");
BufferedReader br = new BufferedReader(new FileReader(f));
String temp = "";
while (br.ready()) {
temp += br.readLine() + "\n";
}
textArea.setText(temp);
} catch (IOException ex) {
System.out.println("Brak pliku");
}
}
break;
}
case 12: {
JFileChooser pliki = new JFileChooser(".");
if (JFileChooser.APPROVE_OPTION == pliki.showSaveDialog(this)) {
try {
File f = pliki.getSelectedFile();
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(textArea.getText());
bw.flush();
bw.close();
} catch (IOException ee) {
System.out.println("Problemy z zapisem");
}
}
break;
}
case 13: {
System.exit(0);
break;
}
case 21: {
Font f = new Font("Arial", Font.PLAIN, 10);
textArea.setFont(f);
break;
}
case 22: {
Font f = new Font("Arial", Font.PLAIN, 18);
textArea.setFont(f);
break;
}
case 23: {
textArea.setText(" ");
break;
}
case 31: {
JOptionPane.showMessageDialog(this, "Autor: \n \n \n");
break;
}
case 41: {
textArea.setText("Szanowny Panie \n\n" + textArea.getText());
break;
}
case 42: {
textArea.setText(textArea.getText() + "\n\n Z poważaniem \n");
break;
}
case 51: {
textArea.setBackground(Color.WHITE);
break;
}
case 52: {
textArea.setBackground(Color.YELLOW);
break;
}
case 53: {
textArea.setBackground(Color.GREEN);
break;
}
}
switch (kolorList.getSelectedIndex()) {
case 0: {
textArea.setForeground(Color.RED);
break;
}
case 1: {
textArea.setForeground(Color.GREEN);
break;
}
case 2: {
textArea.setForeground(Color.BLUE);
break;
}
case 3: {
textArea.setForeground(Color.BLACK);
break;
}
case 4: {
textArea.setForeground(Color.WHITE);
break;
}
}
}
}
Czy mógłby mi ktoś pomóc z tym?