Hallo liebe Community!
Da ich das Programmieren erst seit neuestem lerne, steh ich des öfterem auf dem Schlauch.
Ein Problem was sich nun ergeben hat und ich nicht weiterkomme:
Ich möchte, dass der Nutzer Bsp ein Text eingeben kann und diesen mit Hilfe von Checkboxen Kursiv und Fett machen kann. Einzeln geht alles klar, jedoch wäre meine Frage wie mache ich das, dass wenn beide Checkboxen angeklickt sind das der Text Fett UND Kursiv ist?
Unten habe ich es im Programm ganz unten probiert, doch auch wenn beide angeklickt sind, wird es nicht gleichzeitig fett und kursiv sondern nur eins davon.
Da ich das Programmieren erst seit neuestem lerne, steh ich des öfterem auf dem Schlauch.
Ein Problem was sich nun ergeben hat und ich nicht weiterkomme:
Ich möchte, dass der Nutzer Bsp ein Text eingeben kann und diesen mit Hilfe von Checkboxen Kursiv und Fett machen kann. Einzeln geht alles klar, jedoch wäre meine Frage wie mache ich das, dass wenn beide Checkboxen angeklickt sind das der Text Fett UND Kursiv ist?
Unten habe ich es im Programm ganz unten probiert, doch auch wenn beide angeklickt sind, wird es nicht gleichzeitig fett und kursiv sondern nur eins davon.
Java:
package FensterPackage;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class UnserFrame extends JFrame {
JLabel text;
JButton button;
JTextField eingabe;
JCheckBox fett;
JCheckBox kursiv;
JCheckBox groß;
JPanel panel;
public UnserFrame() {
setVisible(true);
setSize(500, 300); //Breite, Höhe
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);// Fenster in Mitte
setTitle("Erstes Fenster");
setResizable(false);//das man größe nicht ändern kann
setLayout(null);
text = new JLabel("Hallo Welt!");
text.setBounds(50, 100, 250, 60);
Font schrift = (text.getFont().deriveFont(Font.PLAIN, 40)); //mit standart Font
text.setFont(schrift);
text.setToolTipText("Das ist der Text!");
add(text);
button = new JButton("Klick mich");
button.setBounds(100, 10, 100, 50);
button.addActionListener(new UnserListener());
button.setEnabled(false);
button.setToolTipText("Trage den Text ein");
add(button);
eingabe = new JTextField();
eingabe.setBounds(300, 25, 100, 25);
eingabe.addCaretListener(new SchreibkopfListener());
eingabe.setToolTipText("Hier kommt dein Text rein");
add(eingabe);
panel = new JPanel();
panel.setBounds(10, 180, 150, 150);
panel.setLayout(null);
add(panel);
fett = new JCheckBox("Fett");
fett.setBounds(0, 0, 150, 25);
fett.addItemListener(new FettListener());
fett.addItemListener(new FettKursiv());
fett.setToolTipText("Macht den Text Fett!");
panel.add(fett);
kursiv = new JCheckBox("Kursiv");
kursiv.setBounds(0, 25, 150, 25);
kursiv.addItemListener(new KursivListener());
kursiv.addItemListener(new FettKursiv());
panel.add(kursiv);
}
private class UnserListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
text.setText(eingabe.getText());
}
}
private class SchreibkopfListener implements CaretListener{
@Override
public void caretUpdate(CaretEvent arg0) {
String s = eingabe.getText();
s = s.trim();
if(s.isEmpty()) {
button.setEnabled(false);
}else {
button.setEnabled(true);
}
}
}
private class FettListener implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if(fett.isSelected()) {
Font schrift = (text.getFont().deriveFont(Font.BOLD, 40));
text.setFont(schrift);
}
else {
Font schrift = (text.getFont().deriveFont(Font.PLAIN, 40));
text.setFont(schrift);
}
}
}
private class KursivListener implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if(kursiv.isSelected()) {
Font schrift = (text.getFont().deriveFont(Font.ITALIC, 40));
text.setFont(schrift);
}else {
Font schrift = (text.getFont().deriveFont(Font.PLAIN, 40));
text.setFont(schrift);
}
}
}
private class FettKursiv implements ItemListener{
@Override
public void itemStateChanged(ItemEvent arg0) {
if(fett.isSelected() == true) {
if(kursiv.isSelected() == true) {
Font schrift = (text.getFont().deriveFont(Font.ITALIC + Font.BOLD, 40));
text.setFont(schrift);
}
}else {
Font schrift = (text.getFont().deriveFont(Font.PLAIN, 40));
text.setFont(schrift);
}
}
}
}