Schieberegler (JSlider) funktioniert nicht

Status
Nicht offen für weitere Antworten.

susiSorglos

Mitglied
Halli Hallo ihr lieben,

ich will einen BMI rechner programmieren, hab lange gegoogelt hat mit aber nichts gebracht. Ich will einen Slider (Schieberegler) programmieren der das Gewicht verändert bitte kann mir da jemand helfen, ich habe nicht mehr so viel Zeit. Hier ist der Quellcode

Code:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 22.06.2007
  * @author
  */

public class NewCreation extends JFrame {
  // Anfang Variablen
  private JLabel jlblTitel1 = new JLabel();
  private JLabel jlblTitel2 = new JLabel();
  private JLabel jlblDate = new JLabel();
  private JTextField jtxtDate = new JTextField();
  private JLabel jlblWeight = new JLabel();
  private JTextField jtxtWeight = new JTextField();
  private JLabel jlblHeight = new JLabel();
  private JTextField jtxtHeight = new JTextField();
  private JLabel jlblBMI = new JLabel();
  private JLabel jlblBMIA = new JLabel();
  private JLabel jlblComment = new JLabel();
  private JLabel jlblCommentA = new JLabel();
  private JButton jbtnCalculate = new JButton();
  private JButton jbtnReset = new JButton();
  private JButton jbtnSpeichern = new JButton();
  private DlgNochmal dlg=new DlgNochmal(this,"Nochmal?",true);
  private JPanel jPanel1 = new JPanel(null);
  private double height = 0.0;
  private double weight = 0.0;
  private double bmi = 0.0;
  private JLabel jlblAnweisung = new JLabel();
  static JSlider jSlider1 = new JSlider();
  private String Datum = this.jtxtDate.getText();


  // Ende Variablen

  public NewCreation(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 417;
    int frameHeight = 471;
    setSize(frameWidth, frameHeight);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jlblTitel1.setBounds(16, 8, 39, 16);
    jlblTitel1.setText("BMI");
    jlblTitel1.setFont (new Font("Arial", Font.BOLD, 17));
    jlblTitel1.setForeground(Color.RED);
    cp.add(jlblTitel1);
    jlblTitel2.setBounds(56, 8, 143, 16);
    jlblTitel2.setText("Body Mass Index");
    jlblTitel2.setFont (new Font("Arial", Font.BOLD, 17));
    cp.add(jlblTitel2);
    jlblDate.setBounds(16, 40, 77, 15);
    jlblDate.setText("Datum");
    jlblDate.setFont (new Font("Arial", Font.PLAIN, 12));
    cp.add(jlblDate);
    jtxtDate.setBounds(16, 72, 81, 24);
    jtxtDate.setText("");
    cp.add(jtxtDate);
    jlblWeight.setBounds(16, 112, 68, 15);
    jlblWeight.setText("Gewicht (kg)");
    jlblWeight.setFont (new Font("Arial", Font.PLAIN, 12));
    cp.add(jlblWeight);
    jtxtWeight.setBounds(56, 168, 33, 24);
    jtxtWeight.setText("50");
    cp.add(jtxtWeight);
    jlblHeight.setBounds(16, 208, 80, 15);
    jlblHeight.setText("Height (cm)");
    jlblHeight.setFont (new Font("Arial", Font.PLAIN, 12));
    cp.add(jlblHeight);
    jtxtHeight.setBounds(16, 232, 81, 24);
    jtxtHeight.setText("");
    cp.add(jtxtHeight);
    jlblBMI.setBounds(16, 328, 20, 15);
    jlblBMI.setText("BMI");
    jlblBMI.setFont (new Font("Arial", Font.PLAIN, 12));
    cp.add(jlblBMI);
    jlblBMIA.setBounds(107, 328, 149, 16);
    jlblBMIA.setText("");
    jlblBMIA.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jlblBMIA);
    jlblComment.setBounds(16, 352, 65, 15);
    jlblComment.setText("Kommentar");
    jlblComment.setFont (new Font("Arial", Font.PLAIN, 12));
    cp.add(jlblComment);
    jlblCommentA.setBounds(105, 352, 149, 16);
    jlblCommentA.setText("");
    jlblCommentA.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jlblCommentA);
    jbtnCalculate.setBounds(16, 400, 113, 33);
    jbtnCalculate.setFont (new Font("Arial", Font.PLAIN, 12));
    jbtnCalculate.setText("Berechnen");
    cp.add(jbtnCalculate);
    jPanel1.setBounds(304, 216, 185, 177);
    cp.add(jPanel1);
    jlblAnweisung.setBounds(155, 64, 341, 24);
    jlblAnweisung.setText("");
    jlblAnweisung.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(jlblAnweisung);
    jSlider1.setBounds(16, 136, 113, 25);
    cp.add(jSlider1);
    
    jbtnReset.setBounds(288, 400, 113, 33);
    jbtnReset.setFont (new Font("Arial", Font.PLAIN, 12));
    jbtnReset.setText("Löschen");
    cp.add(jbtnReset);
    jbtnSpeichern.setBounds(150, 400, 113, 33);
    jbtnSpeichern.setFont (new Font("Arial", Font.PLAIN, 12));
    jbtnSpeichern.setText("Speichern");
    cp.add(jbtnSpeichern);

    // Ende Komponenten

    jbtnCalculate.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbtnCalculateActionPerformed(evt);
      }
    });


    jbtnReset.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbtnResetActionPerformed(evt);
      }
    });


    jbtnSpeichern.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jbtnSpeichernActionPerformed(evt);
      }
    });
    
    setResizable(false);
    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  

  public void jbtnCalculateActionPerformed(ActionEvent evt) {

    // Daten lesen
    String A = this.jtxtHeight.getText().replace(",",".");

    try {
      weight = Double.parseDouble(this.jtxtWeight.getText());
      height = Double.parseDouble(A);
    }catch(NumberFormatException e){

    }

    bmi = this.Calculate(weight, height);

    bmi = Math.round(bmi*100.)/100.;

    jlblBMIA.setText(Double.toString(bmi));


    //Comment
    if(bmi < 18.5){
      jlblCommentA.setText("Untergewicht");

    }


    if(bmi > 18.5 && bmi <= 25){
      jlblCommentA.setText("Normalgewicht");

    }
    if(bmi > 25 && bmi <= 30){
      jlblCommentA.setText("Präadipositas");

    }
    if(bmi > 30 && bmi <= 35){
      jlblCommentA.setText("Adipositas Grad I");

    }
    if(bmi > 35 && bmi <= 40){
      jlblCommentA.setText("Adipositas Grad II");

    }
    if(bmi > 40){
      jlblCommentA.setText("Adipositas Grad III");

    }
  }
  private double Calculate(double w, double h) {

    String Gewicht = this.jtxtWeight.getText();
    String Groesse = this.jtxtHeight.getText();
    String Bmi = this.jlblBMIA.getText();
    double ret = 0;
    

    
    try{
      boolean texteOk = (Gewicht.length()  >0)
                      && (Groesse.length() >0)
                      &&(Datum.length()>0);


      boolean allesOk = texteOk;
      if(!allesOk) {
        jlblAnweisung.setText("Bitte Felder korrekt ausfüllen !!!");
        jlblAnweisung.setForeground(Color.red);
      }

    }catch(NumberFormatException e){}



    // BMI = Gewicht / Größe²

    ret = w / (h * h); System.out.println(w); System.out.println(h);

    return ret;

  }

  public void jbtnResetActionPerformed(ActionEvent evt) {
  
  this.Reset();

  }

  public void jbtnSpeichernActionPerformed(ActionEvent evt) {
  
    if(jtxtDate.getText().length()<10){
      jlblDate.setText("Falsches Datum!!!!!!!");
    }
    
    // Speichern:
    File verz = new File("Projekt");
    if(!verz.exists()){
      verz.mkdir();
    }

    File datei = new File(verz.getPath()+ "/Letzte Berechnungen.doc");


    try {
      RandomAccessFile raf = new RandomAccessFile(datei, "rw");
      raf.seek(raf.length());
      raf.writeBytes("Datum: "+this.jtxtDate.getText().substring(0, 10)+";"+"\n"
                     +"Height: "+this.jtxtHeight.getText()+" m" +";"+"\n"
                     +"Weight: "+this.jtxtWeight.getText()+"kg"+";"+"\n"+"BMI: "
                     +this.jlblBMIA.getText()+"\n"+"Comment: "
                     +this.jlblCommentA.getText()+"\n\r\n");

      raf.close();
    }catch(NumberFormatException e){

    }catch(IOException e){}

    //Dialog nochmal?:

    this.dlg.setVisible(true);
    if(this.dlg.antwort==true){
      this.Reset();
    }else{
      System.exit(0);
    }

  }
  
  private void Reset() {

    this.jtxtHeight.setText("");
    this.jlblBMIA.setText("");
    this.jlblCommentA.setText("");
    this.setBackground(Color.lightGray);
    this.jlblDate.setText("Current Date");
    this.jlblDate.setForeground(Color.black);
    this.jlblAnweisung.setText("");
  }
  

  // Ende Ereignisprozeduren

  public static void main(String[] args) {
    new NewCreation("NewCreation");
  }
}

ich danke schon im vorraus

SUSI
 

muddin

Mitglied
Hi!

Du musst dem Slider ein ChangeListener hinzufügen.
Ein kleiner Tipp :
Code:
    jSlider1.addChangeListener(new ChangeListener(){
    	
    	public void stateChanged(ChangeEvent e)
    	{
    		JSlider s = (JSlider)(e.getSource());
    		System.out.println(s.getValue());
    	}
    
    });

Das müsste dir eigentlich weiterhelfen.

mfg,
muddin
 

susiSorglos

Mitglied
danke, aber da kommt immer diese Fehlermeldung

Semantic Error....."ChangeListener" was not found und "ChangeEvent" was not found ???:L


und noch was, fehlt da nicht -- > "public Scrollbar(int orientation, int value, int visible,int minimum, int maximum)" wo man die werte angibt, habe echt keine Ahnung bin ne Anfängerin kann mir einer das ausführlicher erklären ? Bitteeeeeee :wink:
 

Marco13

Top Contributor
Dein jSlider1 ist im Moment static - das sollte er aber nicht sein. Er sollte NUR ein
private JSlider jSlider1;
sein. Im Konstruktor (dort, wo die ganzen anderen Components erstellt werden) kannst du dann diesen Slider erstellen (mit den Gewünschten Werten)
jSlider1 = new JSlider(...bla...);
und (wie die anderen Componenten) hinzufügen. Zusätzlich fügst du dort noch den Code ein, den muddin gepostet hat. Und ... eine ScrollBar hat damit eigentlich nichts zu tun. Eine Scrollbar ist sowas wie das ganz rechts -------> (so zum Hoch- und Runterscrollen)

EDIT: Wegen dem "Semantic Error": Es fehlt noch
import javax.swing.event.*;
Schau auch mal hier:
http://java.sun.com/docs/books/tutorial/uiswing/components/slider.html
http://java.sun.com/docs/books/tutorial/uiswing/events/changelistener.html
 

susiSorglos

Mitglied
hurrraaaaaaaaaaaaaaah super Leute ich danke euch allen ganz herzlich. Ich habs geschaaaaaaft der JSlider ist programmiert jetzt fehlt nur noch eins. Ich will den Wert den ich mit dem verschieben des Balkens erhalte in eine JTextField das ich jtxtWeight benannt habe, ausgeben. Ich habe folgendes probiert
Code:
jtxtWeight.setText(jSlider1.getValue());
klappt leider nicht, könnt ihr mir was vorschlagen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Schieberegler wird nicht angezeigt Java Basics - Anfänger-Themen 3
S JSlider und ChangeListener Java Basics - Anfänger-Themen 1
S OOP Zwei JSlider in einer Klasse Java Basics - Anfänger-Themen 2
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
S JSlider Schritt Größe Java Basics - Anfänger-Themen 5
F JSlider korrekt implementieren Java Basics - Anfänger-Themen 19
C Aktueller Wert von einem JSlider auf ein Label Java Basics - Anfänger-Themen 2
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
I Rückgabewert von JSlider Java Basics - Anfänger-Themen 15
R Zeitachse mit JSlider Java Basics - Anfänger-Themen 13
V JSlider wird nicht angezeigt Java Basics - Anfänger-Themen 12
H Swing: JSlider wird nicht angezeigt Java Basics - Anfänger-Themen 5
G JSlider + Lautstärke Java Basics - Anfänger-Themen 10
S Graphic im Panel änder durch JSlider Java Basics - Anfänger-Themen 2
K Farbenspiel mit dem jSlider Java Basics - Anfänger-Themen 5
? JSlider Java Basics - Anfänger-Themen 9
G JSlider Wert auslesen Java Basics - Anfänger-Themen 1
M ChangeListener Problem bei JSlider Java Basics - Anfänger-Themen 3
S undo auf JSlider Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben