Hallo,
habe eine kleines Programm, das beim Verschieben des Sliders einen Balken (fillRect)
verändert. Das klappt auch ganz gut. Nun besteht das Programm aus 2 Balken und einem
dazugehörigen Slider. Wenn beide Balken gleich groß sind, dann soll ein text "Beide Balken sind gleich groß" ausgegeben werden. Wenn Balken x größer ist als y soll "Balken x größer als y" ausgeben werden......etc.
Leider bekomme ich diese Ausgabe nicht hin. Egal wie ich die Slider verschiebe,
es steht immer da, dass beide Balken gleich groß sind.
Hier mal der Code:
habe eine kleines Programm, das beim Verschieben des Sliders einen Balken (fillRect)
verändert. Das klappt auch ganz gut. Nun besteht das Programm aus 2 Balken und einem
dazugehörigen Slider. Wenn beide Balken gleich groß sind, dann soll ein text "Beide Balken sind gleich groß" ausgegeben werden. Wenn Balken x größer ist als y soll "Balken x größer als y" ausgeben werden......etc.
Leider bekomme ich diese Ausgabe nicht hin. Egal wie ich die Slider verschiebe,
es steht immer da, dass beide Balken gleich groß sind.
Hier mal der Code:
Code:
Über einen kurzen Hinweis wäre ich sehr dankbar.
Grüsse
SOA
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComponent;
public class HinzKunzSwing extends JFrame{
int x = 20;
int y = 20;
private int schieberWert = 5;
private int schieberWert1 = 5;
JSlider balkenHinz;
JSlider balkenKunz;
JLabel zeile1;
JLabel zeile1a;
JLabel ausgabe1;
JLabel ausgabe2;
JLabel ausgabe3;
Container contentPane;
public HinzKunzSwing() {
balkenHinz = new JSlider(JSlider.HORIZONTAL,0, 255, 100);
balkenKunz = new JSlider(JSlider.HORIZONTAL,0, 255, 100);
zeile1 = new JLabel("Hinz:");
zeile1a = new JLabel("Kunz:");
ausgabe1 = new JLabel("Hinz ist groesser!");
ausgabe2 = new JLabel ("Kunz ist groesser!");
ausgabe3 = new JLabel ("Beide sind gleich gross!");
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(zeile1, BorderLayout.SOUTH);
contentPane.add(balkenHinz, BorderLayout.WEST);
contentPane.add(zeile1a, BorderLayout.NORTH);
contentPane.add(balkenKunz, BorderLayout.WEST);
contentPane.setBackground(new Color(255, 255, 100));
balkenVergleich();
WindowListener listener = new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
};
this.addWindowListener(listener);
balkenHinz.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
JSlider source = (JSlider)e.getSource();
if (source.getValueIsAdjusting()) {
schieberWert = (int)source.getValue();
repaint();
}
}
});
balkenKunz.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
JSlider source = (JSlider)e.getSource();
if (source.getValueIsAdjusting()) {
schieberWert1 = (int)source.getValue();
repaint();
}
}
});
}//Konstruktor
public void balkenVergleich(){
if (schieberWert == schieberWert1){
contentPane.add(ausgabe3, BorderLayout.CENTER);
repaint();
}
if (schieberWert < schieberWert1){
contentPane.add(ausgabe1, BorderLayout.SOUTH);
repaint();
}
if (schieberWert > schieberWert1){
contentPane.add(ausgabe2, BorderLayout.CENTER);
repaint();
}
}
public void paint(Graphics g){
super.paint( g);
g.fillRect (100, 160, x+ schieberWert,y );
g.fillRect (100, 190, x+ schieberWert1, y );
final String zeile2=
"Vergleich der Koerpergroessen -- Bewegen Sie die ScrollBars!";
g.drawString( zeile2, 80,280 );
final String zeile3="Hinz:";
final String zeile4="Kunz:";
g.drawString( zeile3, 40, 180 );
g.drawString( zeile4, 40, 210 );
}
public static void main(String[] args) {
HinzKunzSwing frame = new HinzKunzSwing();
frame.setTitle(" Hinz und Kunz mit Swing ");
frame.pack();
frame.setSize(500, 300);
frame.setVisible(true);
}//Paint
}//Klasse