Swing JSlider, Popup-Box

manni2

Mitglied
Hallo!

Ich habe einen JSlider erstellt, der eine Skala von 0 bis 10000 umfasst. Ich möchte, dass, während der Slider mit der Maus verschoben wird, an der Maus ein kleines Popup erscheint, das den aktuell eingestellten Wert zeigt (während die Maus gedrückt ist). Sobald man die Maus loslässt, soll dieses Popup-Fensterchen wieder verschwinden.

Wie kann ich das beim JSlider implementieren?

Gruß,
Manni
 

Michael...

Top Contributor
Wüsste nicht, dass JSlider standardmäßig sowas kann.

Muss es denn ein Popup sein, kann der aktuelle Wert nicht einfach in einer anderen Komponente angezeigt werden?

Ansonten hier mal ein Ansatz mit "Popup", allerdings besteht hier die Gefahr, dass bei kleinen Slidern das "Popup" abgeschnitten werden kann:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class JSliderPopupDemo extends JFrame {
	
	public JSliderPopupDemo() {
		this.getContentPane().add(new MalFormedSlider(JSlider.HORIZONTAL, 0 , 10000, 0), BorderLayout.NORTH);
	}
	
	class MalFormedSlider extends JSlider implements ChangeListener, MouseListener, MouseMotionListener {
		private JSlider slider;
		private boolean mouseIsDown;
		private int x;
		
		public MalFormedSlider(int orientation, int min, int max, int value) {
			super(orientation, min, max, value);
			this.addChangeListener(this);
			this.addMouseMotionListener(this);
			this.setFont(new Font("Arial", Font.BOLD, 15));
		}
		
		public void stateChanged(ChangeEvent e) {
			this.repaint();
		}
		
		public void mouseClicked(MouseEvent e) {}
		public void mouseEntered(MouseEvent e) {}
		public void mouseExited(MouseEvent e) {}
		public void mousePressed(MouseEvent e) {}

		public void mouseReleased(MouseEvent e) {
			mouseIsDown = false;
			this.repaint();
		}

		public void mouseDragged(MouseEvent e) {
			mouseIsDown = true;
			x = e.getX();
			if(x<0)
				x=0;
		}

		public void mouseMoved(MouseEvent e) {
			mouseIsDown = false;
			this.repaint();
		}
		
		public void paintComponent(Graphics g) {
			super.paintComponent(g);
			if (!mouseIsDown)
				return;
			Graphics2D g2 = (Graphics2D)g.create();
			g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
			String value = String.valueOf(this.getValue());
			Font font = this.getFont();
			int w = this.getFontMetrics(font).stringWidth(value) + 2;
			if (this.getValue()*100/this.getMaximum()<80)
				g2.translate(x+14, (this.getHeight() - font.getSize())/2);
			else
				g2.translate(x-14-w, (this.getHeight() - font.getSize())/2);
			g2.setColor(Color.WHITE);
			g2.fillRoundRect(0, 0, w, font.getSize()+2, 5, 5);
			g2.setColor(Color.BLACK);
			g2.drawString(String.valueOf(value), 1, font.getSize());
			g2.dispose();
		}
	}
	
	public static void main(String[] args) {
		JFrame frame = new JSliderPopupDemo();
		frame.setBounds(0, 0, 500, 300);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Frage zum Schieberegler JSlider AWT, Swing, JavaFX & SWT 5
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
D Swing JSlider Tip Anzahl AWT, Swing, JavaFX & SWT 3
J JSlider sichtbar AWT, Swing, JavaFX & SWT 7
J Swing JSlider - Form des Reglers AWT, Swing, JavaFX & SWT 6
J JSlider Color Ticks AWT, Swing, JavaFX & SWT 1
J JSlider - MajorTick AWT, Swing, JavaFX & SWT 0
Z JSlider im Modalen-Fenster AWT, Swing, JavaFX & SWT 0
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
A Swing 2 JSlider verknüpfen und mit einem JTextField vergleichen, dann Ausgabe AWT, Swing, JavaFX & SWT 5
A Slider (JSlider?) AWT, Swing, JavaFX & SWT 7
D JSlider "laggt" nach überschreiben der paint methode AWT, Swing, JavaFX & SWT 2
A Swing JSlider erscheint doppelt AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Kontrastanpassung über einen JSlider AWT, Swing, JavaFX & SWT 2
A Swing Bestimmte Werte anzeigen JSlider() AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
C Aussehen von JSlider ändern AWT, Swing, JavaFX & SWT 7
D Swing jSlider soll selber weiterwandern, je nach zeit der musik AWT, Swing, JavaFX & SWT 5
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
C Swing Tickspacing in JSlider AWT, Swing, JavaFX & SWT 3
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
T jSlider-Value als Float in jLabel ausgeben AWT, Swing, JavaFX & SWT 2
O Swing JSlider mit doppelter Value AWT, Swing, JavaFX & SWT 6
F JSlider Design ändern AWT, Swing, JavaFX & SWT 6
D Swing JSlider AWT, Swing, JavaFX & SWT 11
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
E JSlider synchron halten AWT, Swing, JavaFX & SWT 4
J Swing jSlider nur auf bestimmte werte beschränken AWT, Swing, JavaFX & SWT 15
X Audio Player: Fenster mit Play/Stop-Button erstellen, mit JSlider Lautstärke ändern AWT, Swing, JavaFX & SWT 6
R JSlider AWT, Swing, JavaFX & SWT 9
J JSlider mit Double Werten AWT, Swing, JavaFX & SWT 5
J JSlider auf JTextPane? AWT, Swing, JavaFX & SWT 2
M Jslider Beschriftung AWT, Swing, JavaFX & SWT 6
R JLabel und JSlider dynamisch erzeugen? AWT, Swing, JavaFX & SWT 3
E jSlider und ChangeListener AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
T Swing JSlider und Adjustment-Listener wollen nicht so recht AWT, Swing, JavaFX & SWT 2
O JSlider - wie unterscheide ich mit Maus verändert und durch setValue verändert. AWT, Swing, JavaFX & SWT 16
T JSlider: ChangeListener löst dreimal aus? AWT, Swing, JavaFX & SWT 4
B JSlider in JCombobox AWT, Swing, JavaFX & SWT 9
J JSlider wird nicht neugezeichnet AWT, Swing, JavaFX & SWT 8
J Einen JSlider ähnlich wie in OO3 AWT, Swing, JavaFX & SWT 5
G JSlider in Applet AWT, Swing, JavaFX & SWT 4
K Unterschiedliches Aussehen der JSlider? AWT, Swing, JavaFX & SWT 4
I Listener für einen JSlider AWT, Swing, JavaFX & SWT 1
G beschriftung von JSlider AWT, Swing, JavaFX & SWT 7
H JSlider mit 2 Werten AWT, Swing, JavaFX & SWT 7
L JSlider Beschriftung AWT, Swing, JavaFX & SWT 1
A JSlider umdrehen AWT, Swing, JavaFX & SWT 15
D JSlider und JMF player verbinden AWT, Swing, JavaFX & SWT 6
J JSlider regaiert unter Java 1.6 nicht mehr AWT, Swing, JavaFX & SWT 7
N JSlider: Kosmetik - snapToTicks AWT, Swing, JavaFX & SWT 3
T JComponents abändern/modifizieren z.b. JSlider AWT, Swing, JavaFX & SWT 2
N Nicht linearer JSlider! AWT, Swing, JavaFX & SWT 4
T JSlider getValue() erst nach dem Loslassen des Mauszeigers AWT, Swing, JavaFX & SWT 3
Z JSlider-Knob wenden AWT, Swing, JavaFX & SWT 8
L JSlider stumm geworden? AWT, Swing, JavaFX & SWT 2
I JSlider - klick ignorieren AWT, Swing, JavaFX & SWT 4
I JSlider-Schieberegler AWT, Swing, JavaFX & SWT 7
T JSlider Schiebereglerbild ändern AWT, Swing, JavaFX & SWT 4
U JSlider - Probleme bei der Darstellung AWT, Swing, JavaFX & SWT 3
H ChangeListener für JSlider AWT, Swing, JavaFX & SWT 6
P JSlider automatisch bewegen AWT, Swing, JavaFX & SWT 3
G JSlider AWT, Swing, JavaFX & SWT 2
J GUI Programmierung Popup-Menü AWT, Swing, JavaFX & SWT 4
T Maximieren des Application-Modal Popup-Dialoges+Parent AWT, Swing, JavaFX & SWT 1
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
F Popup Menu etwas verschieben AWT, Swing, JavaFX & SWT 2
T Swing Combox Popup vergroessert - Arrow nicht mehr vorhanden! AWT, Swing, JavaFX & SWT 4
X Popup Menü nur bei besonderem Fall öffnen AWT, Swing, JavaFX & SWT 3
B Popup auf der Textcoursor-Position AWT, Swing, JavaFX & SWT 5
B Swing Submenüs im Popup anzeigen AWT, Swing, JavaFX & SWT 2
T Popup Fenster AWT, Swing, JavaFX & SWT 2
B Ladebalken in einem Popup-Fenster AWT, Swing, JavaFX & SWT 6
Kenan89 PopUp Fenster AWT, Swing, JavaFX & SWT 4
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
B popup in jtable AWT, Swing, JavaFX & SWT 4
C JComboBox Popup nicht öffnen AWT, Swing, JavaFX & SWT 4
K Popup in Swing AWT, Swing, JavaFX & SWT 10
O Info Popup AWT, Swing, JavaFX & SWT 9
T JTable, Popup Fester per Rechtsklick auf Zelle AWT, Swing, JavaFX & SWT 19
W Java Popup bei Win7 und Mac verschieden? AWT, Swing, JavaFX & SWT 2
Eldorado Swing Popup-Menü mit Jspinner AWT, Swing, JavaFX & SWT 4
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
lumo SWT CellEditor & Popup AWT, Swing, JavaFX & SWT 3
data89 PopUp-Panel bauen - aber wie? AWT, Swing, JavaFX & SWT 2
S Swing PopUp oeffnet sich nach der Methode, die erst nach Fensteraufruf gestartet wird AWT, Swing, JavaFX & SWT 3
aze JTable in Popup.Problem mit DefaultTableCellRenderer AWT, Swing, JavaFX & SWT 9
N rechtsklick und popup setlocation AWT, Swing, JavaFX & SWT 2
C Swing JComboBox Popup sperren AWT, Swing, JavaFX & SWT 8
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
SebSnake Popup-JFrame soll Daten an Parent-JFrame übergeben AWT, Swing, JavaFX & SWT 3
T Button des Popup-Menüs ermitteln AWT, Swing, JavaFX & SWT 4
T JComboBox nur mit Popup AWT, Swing, JavaFX & SWT 4
F Applet und Popup AWT, Swing, JavaFX & SWT 4
G Popup eines Bildes im JTable realisieren AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben