Grafische Auswertung (Ampel-System)

Status
Nicht offen für weitere Antworten.

Vril

Bekanntes Mitglied
Hallo,

ich habe ein Programm geschrieben, das mir int Zahlen von 1 bis 10 berechnet. Jetzt würde ich gerne das jeweilige Ergebnis mit einer Farbskala darstellen. Also ein Balken mit Farbverlauf von rot-gelb-grün. grün links = 1 bis rot rechts = 10. Das Ergebnis der int Zahl von 5 würde z.B. die Farbskala ca. in der Mitte markieren, bei gelb; mit der Zahl 1 würde man ganz links liegen, grün usw.

Also ich hab zwar immer eine unterschiedliche Zahl (1-10), hab aber keine wirkliche Idee wie ich das mit dem "Ampel-System" lösen könnte.

Hat zufällig schon mal jemand was ähnliches gemacht oder hat eine Idee wie man so etwas machen könnte? Hab nämlich keine richtige Vorstellung wie das gehen könnte!
 

Vril

Bekanntes Mitglied
Also so sollte das z.B. dann aussehen (für die Zahl 1, 6, 10):
Balken.jpg

Hab aber wirklich keine Idee wie man das machen könnte! Kann mir jemand weiterhelfen?
 

Vril

Bekanntes Mitglied
@Wildcard/meez

Wie macht man das genau? Hab wirklich keine Ahnung wie das geht...habt ihr vielleicht irgendwo ein Beispiel?
 
B

Beni

Gast
Wildcard hat gesagt.:
z.B. eine Hashmap mit 10 Elementen
Ihr wart auch schon kommunikativer :wink:

Code:
Map<Integer, Color> colors = new Hashtable<Integer, Color>();

colors.put( 1, new Color( 255, 0, 0 );
colors.put( 2, new Color( 240, 20, 0 );
/// usw

Color color3 = colors.get( 3 );

Du kannst auch eine Methode schreiben, welcher diese Farben generiert:
Code:
// ratio: Wert zwischen 0 und 1: 0 ist grün, 1 ist rot, alles andere Zwischenfarben.
public Color createColor( double ratio ){
  return new Color(  (int)(ratio * 255 ), (int)( (1-ratio)*255 ), 0 );
}
 

Vril

Bekanntes Mitglied
Hallo,

also mir ist es jetzt gelungen schon mal einen Anfang zu schaffen. Jetzt stehe ich aber vor dem Problem für die entsprechenden Zahlen eine Markierung zu setzen. Ich habe jetzt für den Anfang der einfachheithalber einen int wert = 10 bestimmt. D.h. es sollte unter der Farbe zehn (ganz rechts, rot) irgendeine Markierung gesetzt werden, am besten ein Pfeil und darunter 10 stehen.

Hat zufällig jemand eine Idee wie ich das jetzt machen könnte?

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

public class AuswertungVersuch extends JFrame  {
	
	public int wert = 10;
	
	public JLabel eins, zwei, drei, vier,fuenf,sechs,sieben,acht,neun,zehn;
	
	public AuswertungVersuch(){
	
	setSize(500,600);
	setBackground(Color.lightGray);
	setLayout(new GridLayout (3,10));
	
	for (int i = 0; i < 10; i++){
		JLabel platzhalter = new JLabel();
		add(platzhalter);
	}
	
	JLabel eins = new JLabel();
	eins.setOpaque(true);
	eins.setBackground(new Color(0,153,0));
	add(eins);
	
	JLabel zwei = new JLabel();
	zwei.setOpaque(true);
	zwei.setBackground(new Color(51,204,51));
	add(zwei);
	
	JLabel drei = new JLabel();
	drei.setOpaque(true);
	drei.setBackground(new Color(102,254,51));
	add(drei);
	
	JLabel vier = new JLabel();
	vier.setOpaque(true);
	vier.setBackground(new Color(152,255,47));
	add(vier);
	
	JLabel fuenf = new JLabel();
	fuenf.setOpaque(true);
	fuenf.setBackground(new Color(202,255,49));
	add(fuenf);
	
	JLabel sechs = new JLabel();
	sechs.setOpaque(true);
	sechs.setBackground(new Color(255,255,0));
	add(sechs);
	
	JLabel sieben = new JLabel();
	sieben.setOpaque(true);
	sieben.setBackground(new Color(255,204,0));
	add(sieben);
	
	JLabel acht = new JLabel();
	acht.setOpaque(true);
	acht.setBackground(new Color(255,153,52));
	add(acht);
	
	JLabel neun = new JLabel();
	neun.setOpaque(true);
	neun.setBackground(new Color(255,102,6));
	add(neun);
	
	JLabel zehn = new JLabel();
	zehn.setOpaque(true);
	zehn.setBackground(new Color(255,0,0));
	add(zehn);
	
	for (int i = 0; i < 10; i++){
		JLabel auswertung = new JLabel();
		add(auswertung);
	}
	
	setVisible(true);
	}
	
	public void suche(){
		// nur ein Test, natürlich soll ja eine Markierung darunter, ein Pfeil mit
		// der Zahl 10, angebracht werden. Aber auch der Test funzt. nicht ;-(
		if (wert == 10){
			zehn.setText("X");
		}
	}
	
	public static void main (String[] args){
		 new AuswertungVersuch();
		
	}
}
 

mic_checker

Top Contributor
1) Du deklarierst oben:
Code:
public JLabel eins, zwei, drei, vier,fuenf,sechs,sieben,acht,neun,zehn;

Doch im Konstruktor deklarierst du nochmal eins etc.

Code:
JLabel eins = new JLabel(); 
..

Mach JLabel weg und initialisier es nur etc.

Dann könntest du dir noch nen MouseListener schreiben:
Code:
   class MouseL extends MouseAdapter {
			public void mouseClicked(MouseEvent event)
			{
//....
			}
	}

Diesen fügst du jeweils zu den Labels als MouseListener hinzu:

Code:
eins.addMouseListener(new MouseL());
...

Im MouseListener musst du nur noch schauen von welchem Label der Event kommt, also event.getSource(). z.B.

Code:
if(event.getSource() == eins) {
					//mach was für klick auf 1....
				}
//etc. pp.

So kriegst du schonmal raus wodrauf geklickt wurde....
 

Vril

Bekanntes Mitglied
Thx!
Hab das ganze aber jetzt mit Graphics gelöst, also ohne JLabels! Funktioniert jetzt wunderbar!
 

mic_checker

Top Contributor
Ok - aber wenn du es so machst wie oben beschrieben funzt es auch ;)

Musst nur dran denken jedem JLabel den MouseListener hinzuzufügen und in diesem entsprechend getSource() abzufragen.

Aber - jedem das seine... ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
H Mehrsprachigkeit und grafische Oberflächen Java Basics - Anfänger-Themen 4
R Grafische Benutzeroberfläche GUI nachträglich einbauen Java Basics - Anfänger-Themen 3
T Grafische programme - Variblen Schrift Java Basics - Anfänger-Themen 2
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
K Panels, grafische Oberflächen Java Basics - Anfänger-Themen 7
K sich bewegende grafische Objekte Java Basics - Anfänger-Themen 68
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
F grafische Anzeige von Werten Java Basics - Anfänger-Themen 2
A Grafische Umsetzung von Aktienkursen Java Basics - Anfänger-Themen 2
M JavaSpiel ohne grafische Umsetzung Java Basics - Anfänger-Themen 3
T Grafische Oberfläche Java Basics - Anfänger-Themen 14
J Editor für grafische Oberfläche Java Basics - Anfänger-Themen 12
F Grafische Oberfläche.ist das kompliziert? Java Basics - Anfänger-Themen 7
G Grafische Oberfläche mit Buttons und Actionlistener? Java Basics - Anfänger-Themen 27
U Grafische Eingabe und ausgabe mit java Java Basics - Anfänger-Themen 5
B Grafische Darstellung einer Emailverteilerliste Java Basics - Anfänger-Themen 2
H Erste Schritte Warum misslingt die Auswertung des ersten Aufrufparameters? Java Basics - Anfänger-Themen 4
topi Parentabfrage, danach "if"-Auswertung Java Basics - Anfänger-Themen 3
T Operatoren Seiteneffekte bei Auswertung von Ausdrücken Java Basics - Anfänger-Themen 9
D Erste Schritte Weblog-Auswertung Java Basics - Anfänger-Themen 252
D statistische Auswertung Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
L Problem mit Auswertung von String mit if Java Basics - Anfänger-Themen 10
T Log-Datei Auswertung Java Basics - Anfänger-Themen 7
B [Javadoc] Tutorial für die Auswertung des docs Java Basics - Anfänger-Themen 15
W Datentypen Auswertung von Ausdrücken (Teil 1) Java Basics - Anfänger-Themen 7
N auswertung von bildern Java Basics - Anfänger-Themen 14
C Denkanstoss für meine Auswertung Java Basics - Anfänger-Themen 5
C Auswertung Java Basics - Anfänger-Themen 5
B Auswertung eines Ausdrucks Java Basics - Anfänger-Themen 10
M seltsames Phänomen in der Auswertung boolscher Variablen Java Basics - Anfänger-Themen 7
M zahlenimport und auswertung Java Basics - Anfänger-Themen 5
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
P9cman Ampel in Java implementieren Java Basics - Anfänger-Themen 3
D Ampel für Mitarbeiter zum An-/Abwesend zeigen Java Basics - Anfänger-Themen 28
S Ampel Programmieren Java Basics - Anfänger-Themen 5
Y Ampel Java Basics - Anfänger-Themen 11
L Ampel-Simulation Java Basics - Anfänger-Themen 20
T Ampel implementieren Java Basics - Anfänger-Themen 12
M Ampel Symbole Java Basics - Anfänger-Themen 4
B Ampel (mitBlueJ) Java Basics - Anfänger-Themen 6
M Ampel Java Basics - Anfänger-Themen 14
B Erste Schritte handgeschaltete Ampel programieren Java Basics - Anfänger-Themen 8
Z Ampel Java Basics - Anfänger-Themen 19
D Ampel Programmieren Java Basics - Anfänger-Themen 5
G Ampel automatisch umschalten Java Basics - Anfänger-Themen 18
I Ampel mit Verzögerung Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben