Hallo,
ich suche den Fehler in meiner paintComponent-Methode in der Klasse HKLabel. Die damit gezeichneten Strings und Rechtecke werden leider nicht ausgegeben. Hat jemand eine Idee?
ich suche den Fehler in meiner paintComponent-Methode in der Klasse HKLabel. Die damit gezeichneten Strings und Rechtecke werden leider nicht ausgegeben. Hat jemand eine Idee?
Java:
public class HinzKunzSwing extends JFrame implements ChangeListener {
private JSlider sliderHinz = null;
private JSlider sliderKunz = null;
private float schieberWertHinz = 10;
private float schieberWertKunz = 10;
private Container contentPane;
private static Color gray;
private String vergleich = "Noch nichts passiert...";
public HinzKunzSwing(String title) {
super(title);
contentPane = getContentPane();
contentPane.setLayout(new GridLayout(5,4));
contentPane.setBackground(gray);
sliderHinz = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);
sliderKunz = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);
sliderHinz.setBounds(20, 110, 170, 20);
sliderKunz.setBounds(200, 110, 170, 20);
contentPane.add(new JLabel("Hinz: "));
contentPane.add(new JLabel("Kunz: "));
contentPane.add(sliderHinz);
contentPane.add(sliderKunz);
HKLabel ausgabe = new HKLabel(vergleich, schieberWertHinz, schieberWertKunz);
contentPane.add(ausgabe);
contentPane.add(new JLabel ("Vergleich der Korpergrößen - Verschieben Sie die Scrollbars!"));
sliderHinz.addChangeListener(this);
sliderKunz.addChangeListener(this);
setSize(600, 600 );
setLocation(50, 30);
setVisible( true );
MeinWindowAdapter meinWa = new MeinWindowAdapter();
addWindowListener(meinWa);
}
class MeinWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public void stateChanged(ChangeEvent e) {
if (e.getSource() == sliderHinz) schieberWertHinz = sliderHinz.getValue();
if (e.getSource() == sliderKunz) schieberWertKunz = sliderKunz.getValue();
if (schieberWertKunz == schieberWertHinz) vergleich = "Beide sind gleich groß!";
if (schieberWertKunz < schieberWertHinz) vergleich = "Hinz ist größer!";
if (schieberWertKunz > schieberWertHinz) vergleich = "Kunz ist größer!";
repaint();
}
public static void main(String[] args) {
new HinzKunzSwing("Hinz und Kunz - Swing");
}
Java:
public class HKLabel extends JLabel {
public HKLabel(String vergleich, float schieberWertHinz, float schieberWertKunz){
this.vergleich = vergleich;
this.schieberWertHinz = schieberWertHinz;
this.schieberWertKunz = schieberWertKunz;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
String hinz = "Hinz: ";
String kunz = "Kunz: ";
String anzeige = vergleich;
Rectangle2D.Float floatRectHinz = new Rectangle2D.Float (50, 200, schieberWertHinz, 30);
Rectangle2D.Float floatRectKunz = new Rectangle2D.Float (50, 250, schieberWertKunz, 30);
g.drawString(anzeige, 100, 180);
g.drawString(hinz,10,200);
g2.setColor(red);
g2.fill(floatRectHinz);
g.drawString(kunz, 10, 250);
g2.setColor(yellow);
g2.fill(floatRectKunz);
}
}