JProgressbar mit individuellem Start/Endpunkt

stehohrhase

Mitglied
Ich versuche einen JProgressbar zu erstellen und scheiter wohl an der Mathematik ;(

Der Balken soll mir eine Temperatur in einem definierten Bereich anzeigen.
Gegeben sind die Grenzwerte bei 20% und 80%.

Zum Beispiel: 20% = 300 Grad, 80% = 500 Grad.

Dann soll der Balken bei 400 Grad Ist-Temperatur genau in der Mitte stehen (50% Ausschlag).

Ich kriege leider die beiden Werte für 0% und 100% nicht ausgerechnet, um den Balken richtig anzusteuern. Der Ausschlag sollte nicht bei 0 Grad losgehen, sondern skaliert nach den Werten.

Jemand einen Tip ?

LG, stehohrhase
 

Chloroplast

Bekanntes Mitglied
wenn die grenzwerte von vornherein klar sind, kannst du doch was machen á la
Java:
JProgressBar jpb = new JProgressBar();
jpb.setMaximum(500);
jpb.setMinimum(300);

//...

jpb.setValue(400);

oder hab ich da was falsch verstanden?
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Wie ungefähr soll das ganze aussehen ?

Java:
package tests;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;


	/**
	 * 
	 * @author kaoZ
	 *
	 */

public class Foo {
	
	JProgressBar bar;
	JPanel panel;
	JFrame frame;
	
	public Foo() {
		initFrame();
		setupBar();
		addComponents();
	}
	
	private void initFrame(){
		frame = new JFrame("TestBar");
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setSize(250,80);
		frame.setLocationRelativeTo(null);
		
		panel = new JPanel();
	}
	
	private void setupBar(){
		bar = new JProgressBar();
		bar.setMinimum(0);
		bar.setMaximum(800);
		bar.setStringPainted(true);
		
		bar.setValue(400); // hier könnte man den aktuellen Wert vorab setzen 
	}
	
	private void addComponents(){
		panel.add(bar);
		frame.add(BorderLayout.CENTER, panel);
	}
	
	public void show(){
		frame.setVisible(true);
	}
	
	public static void main(String[] args) {
		new Foo().show();
	}
	
}

So ungefähr oder willst du das anstelle der Prozent der eigentliche Wert angezeigt wird ?



[EDIT]Die Grenzen könntest du dann mit einfachen if-anweisungen setzen[/EDIT]

z.B

Java:
if (bar.getValue() == 300) {
	//Do something
}
else if (bar.getValue() == 500){
	//Do something else
}

oder die etwas hübschere alternative :)

Java:
switch(bar.getValue()){
	case 100:
		//do something
	    break;
	case 200:
		//do something
	    break;
		}
 
Zuletzt bearbeitet:

stehohrhase

Mitglied
Danke für die schnelle Antwort.
Ich meinte das etwas anders:
Code:
#########################################
0       20        50        80       100 %

Das ist mein Progressbar. Gegeben sind Überwachungsgrenzen, die bei 20% und 80 % liegen.

Sind die Grenzwerte, "20% = 200 Grad" und "80% = 800 Grad",
dann zeigt der Progressbar bei 0% = 0 Grad, 10% = 100 Grad, 50% = 500 Grad, 80% = 800 Grad und 100% = 1000 Grad.

Setze ich nun die untere Grenze auf 700 Grad, dann habe ich "20% = 700 Grad" und 80% = 800 Grad".

Wie parametriere ich nun den Progressbar ?
20% entspricht nun 700 Grad und 80% immer noch 800 Grad - damit hätten wir bei 50% nun 750 Grad.

Und nun tue ich mir schwer, die min und max - Werte des Progressbar zu berechen, um dort eine lineare Anzeige hinzubekommen.
50% ist 750 Grad. und 0% wäre etwa bei 680 Grad und 100% bei etwa 820 Grad. Ist jetzt mal überschlagen....
Genau diese Berechnung kriege ich nicht hin.
 
Zuletzt bearbeitet:

Chloroplast

Bekanntes Mitglied
formulier mal wieviel Prozent der balken bei diesen werten anzeigen soll (falls er überhaupt was anzeigen soll):

0, 100, 300, 400, 500, 800, 1000

oder versuch mal dein problem in worte zu fassen. möchtest du den JProgressBar für eine gewisse wertemenge einstellen, oder willst du nach angabe der grenzen deine werte "strecken" bzw. "stauchen"
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Wenn du sagst überwachungsgrenzen, meinst du damit das der bereich zwischen 20 % - 80 % überwacht werden soll oder nur die werte bei 20 % bzw 80% ?

demnach sind die bereiche < 20 % bzw > 80 % unrelevant ?

mir ist noch nicht so ganz klar was genau du da versuchst umzusetzen ^^

Bzw. wonach soll sich dein minimum und maximum denn richten ? Temperatur oder Prozent ?

[EDIT]woher genau bekommst du denn die Werte ?[/EDIT]

Sonst könntest du z.B auch getter und setter für minimum und maximum erzeugen und diese dann setzen

Java:
bar.setMinimum(getMin());
bar.setMaximum(getMax());

//insofern die werte nicht vorbestimmt sein sollen

Java:
public int getMin(){

  int wert = 0;  //hier könnte z.B der wert aus einem Textfeld ausgelesen werden usw...
 
return wert;
}
 
Zuletzt bearbeitet:

stehohrhase

Mitglied


In GUI soll es so aussehen:

Unten stehe die beide Grenzwerte - hier 205 Grad und 215 Grad.
Wenn diese Werte erreicht sind, sollte der Ausschlag in etwa bei den Zahlen stehen,
was 20% und 80% vom Anzeigebereich entspricht.

Bei der Solltemperatur, hier 210 Grad soll der Progressbar mittig stehen.
Ich habe diese 3 Werte (MIN, MAX, IST der Temperatur) um Ihn zu generieren.

Normaleweise bräuchte ich min=0 und max=420, damit er bei 210 Grad richtig mittig steht.
Nur sind dann die Grenzen so nah am Wert, das man nichts mehr Unterscheiden kann.

Ich will quasi reinzoomen.
Bis ca. 200 Grad ist kein Ausschlag zu sehen und fängt dann an, bis er bei 210 mittig ist.
Bei 220 Grad etwa bin ich rechts am Anschlag.... Da soll er dann auch bleiben, egal wie hoch die Temperatur ist.

Ich hoffe, ich konnte es so etwas genauer beschreiben...
 
Zuletzt bearbeitet:

Chloroplast

Bekanntes Mitglied
so, ich hoffe es ist dass was du meinst, versuche es einfach mal. ich muss weg, ich erklärs heute abend:

Java:
public void setMinMax(JProgressBar bar){
int temperaturMax = 215;
int temperaturMin = 205;
bar.setMaximum(temperaturMax*100/80);
bar.setMinimum(temperaturMin-((temperaturMax*100/80)-temperaturMax));
}
 

stehohrhase

Mitglied
Praktisch geht das leider auch nicht:

210 Grad = Balken auf 50 % - ok
205 Grad = Balken auf 46 % - nio, soll 20%
215 Grad = Balken auf 54 % - nio, soll 80 %
 

Chloroplast

Bekanntes Mitglied
So, jetzt müsste es stimmen
Java:
	public void setMaxMin(JProgressBar bar){
		int temperaturMax = 215;
		int temperaturMin = 205;
		int delta60Pro = temperaturMax-temperaturMin;
		int delta20pro = delta60Pro*20/60;
		int max = temperaturMax + delta20pro;
		int min = temperaturMin - delta20pro;
		System.out.println(min+" - "+max);
		bar.setMaximum(max);
		bar.setMinimum(min);
		
	}
 

Chloroplast

Bekanntes Mitglied
die spanne von deiner unteren und oberen grenze sind 60%... das heißt man hat jeweils 20% davor und dahintewr des vollen, das kriergt man über dreisatz hin
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
S Thread.sleep mit JProgressBar Java Basics - Anfänger-Themen 1
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
E jProgressBar auf 0 stellen Java Basics - Anfänger-Themen 1
E JProgressbar Java Basics - Anfänger-Themen 8
M JProgressBar wird nicht richtig angezeigt Java Basics - Anfänger-Themen 8
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
S JProgressBar richtig anwenden Java Basics - Anfänger-Themen 27
N JProgressBar Java Basics - Anfänger-Themen 8
K Threads jProgressBar update Java Basics - Anfänger-Themen 14
J JProgressBar - wird nicht geupdated Java Basics - Anfänger-Themen 3
H JProgressBar wird nicht aktualisiert Java Basics - Anfänger-Themen 7
S jProgressBar läuft nicht! Java Basics - Anfänger-Themen 13
H Aktualisierung des JProgressBar in Abhängigkeit eines Threads Java Basics - Anfänger-Themen 5
Y jprogressbar beenden? Java Basics - Anfänger-Themen 4
L JProgressBar für FileUpload Java Basics - Anfänger-Themen 3
B Pseudo JProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar - XP style Java Basics - Anfänger-Themen 4
G JProgressBar während dem ausführen einer Funktion Java Basics - Anfänger-Themen 3
S jProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar Java Basics - Anfänger-Themen 2
G JProgressBar#2 Java Basics - Anfänger-Themen 2
G JProgressBar Java Basics - Anfänger-Themen 7
G jProgressBar value aus anderer Klasse heraus verändern Java Basics - Anfänger-Themen 7
B jProgressBar mit while nicht for Java Basics - Anfänger-Themen 13
K JProgressbar, zur laufzeit steuern Java Basics - Anfänger-Themen 7
V JProgressBar anklickbar? Java Basics - Anfänger-Themen 2
A Timer + JProgressBar Java Basics - Anfänger-Themen 4
G in JProgressBar Fortschritt anzeigen Java Basics - Anfänger-Themen 8
P JDialog & JProgressBar Java Basics - Anfänger-Themen 2
Z Problem mit JProgressBar Java Basics - Anfänger-Themen 4
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Can't start eclipse Java Basics - Anfänger-Themen 5
D Neuer Start- und Endpunkt kann nur an bereits vorhandenen Start- oder Endpunkt anliegen Java Basics - Anfänger-Themen 2
J Compiler-Fehler Illegal Start of expression / '/'expected Java Basics - Anfänger-Themen 3
C NoClassDefFoundError mit externer Jar bei Start aus Eclipse Java Basics - Anfänger-Themen 3
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
J Problem bei seriellem Start von Threads Java Basics - Anfänger-Themen 11
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
N Passwort Anfrage vor Programm start Java Basics - Anfänger-Themen 1
S Fehler: Hauptklasse bin.demo.Start konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
S Methoden Beim Start meines Projektes eine Methode ausführen Java Basics - Anfänger-Themen 14
P ,,Illegal start of expression,, Java Basics - Anfänger-Themen 3
S Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 4
S Dataflow von Start bis die SystemProperties class Java Basics - Anfänger-Themen 1
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
P illegal start of expression wie löse ich das? Java Basics - Anfänger-Themen 2
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
thet1983 start & paint Methode? Java Basics - Anfänger-Themen 0
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
R illegal start of expression - 3 Strings vergleichen mit .equals () Java Basics - Anfänger-Themen 5
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
X Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 9
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
P Illegal start of expression Java Basics - Anfänger-Themen 8
V Start ins Java Game Development Java Basics - Anfänger-Themen 22
M Erster JAR Start überprüfen Java Basics - Anfänger-Themen 6
O Illegal start of expression Java Basics - Anfänger-Themen 3
E Program Start Java Basics - Anfänger-Themen 2
B Threads Interrupt und start Java Basics - Anfänger-Themen 2
E Program Start Java Basics - Anfänger-Themen 2
J JDK installieren JCreator erkennt JDK nicht. "Failed to start the following executable" Java Basics - Anfänger-Themen 3
L Illegal start of expression? Java Basics - Anfänger-Themen 4
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
M Beim Start Methode laden die Textfelder füllt Java Basics - Anfänger-Themen 5
M Bei *.jar start kompletten String übergeben Java Basics - Anfänger-Themen 7
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
M Mehrere Threads nutzen --> run() schneller als start(), Warum? Java Basics - Anfänger-Themen 3
D Start- + Stopzeit Java Basics - Anfänger-Themen 7
J start(); bei bluej Java Basics - Anfänger-Themen 3
R GUI mit if-Verzweigung kombiniert - Illegal start of expression (Dringend) Java Basics - Anfänger-Themen 7
S Illegal Start? Java Basics - Anfänger-Themen 4
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
P BlueJ Fehlermeldung - Illegal Start of Type Java Basics - Anfänger-Themen 8
M Java-web-start weg? Java Basics - Anfänger-Themen 2
S illegal start of expression Java Basics - Anfänger-Themen 2
D OOP Applet-Start Fehler Java Basics - Anfänger-Themen 2
Semox Fehler in Eclipse vor Start eines Applets anzeigen? Java Basics - Anfänger-Themen 2
F Richtiger Start in Java? Java Basics - Anfänger-Themen 2
S Start einer Applikation Java Basics - Anfänger-Themen 10
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
G Applet - Methode start() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
M [Hibernate] "Illegal start of expression"-Fehler b Java Basics - Anfänger-Themen 2
G Java beim Start ausführen Java Basics - Anfänger-Themen 2
A Start über Konsole nicht möglich Java Basics - Anfänger-Themen 4
M Zeitdifferenz von Ende - sleep(x) - Start von x abhängig Java Basics - Anfänger-Themen 6
D "Illegal Start of Expression" und "; expected Java Basics - Anfänger-Themen 3
A Integer Value Error beim Start Java Basics - Anfänger-Themen 5
J Start mit .exe-Datei oder Desktop-Symbol möglich? Java Basics - Anfänger-Themen 12
A Methoden am start ausführen Java Basics - Anfänger-Themen 6
G Problem: Start: Applet nicht initialisiert Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben