Swing Aktuelle Größe eines Textes in einem Label darstellen

tinche_st

Mitglied
Hallo Liebe Java Experten,
ich habe ein Problem an dem ich schon eine weile arbeite. Ich muss die Größe des Textes, die über die beiden Schaltflächen verändert werden kann, erweitern, so dass die aktuelle Textgröße zusätzlich in einem Label angezeigt wird. Ich habe versucht die Textgröße Variable (int schriftGroesse) in String umzuwandeln und sie im neuen JLabel darzustellen. Dies ist mir leider nicht gelungen. Hier ist mein code. Ich bitte um Hilfe!

[JAVA=42]package textTauscher2;


import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;


public class TextSpielereiGUI extends JFrame{

//die ID wurde automatisch mit Eclipse ergänzt
private static final long serialVersionUID = 9101793356610287754L;

//ein Label und zwei Schaltflächen als Instanzvariablen
private JLabel ausgabe, ausgabe2;
private JButton schaltflaecheGroesser, schaltflaecheKleiner;
//für die aktuelle Schriftgröße
private int schriftGroesse;

//eine innere Klasse für den WindowListener und den ActionListener
//die Klasse ist von WindowAdapter abgeleitet und
//implementiert die Schnittstelle ActionListener
class MeinKompakterListener extends WindowAdapter implements ActionListener{
//für das Öffnen des Fensters
@Override
public void windowOpened(WindowEvent e) {
//für die Eingabe
String eingabe;
eingabe = JOptionPane.showInputDialog("Geben Sie einen Text ein");
//den Text in das Label setzen
ausgabe.setText(eingabe);

//das Fenster neu "packen"
pack();
}

//für die Schaltflächen
@Override
public void actionPerformed(ActionEvent e) {
//wurde auf Größer geklickt
if (e.getActionCommand().equals("<")){
//die Schriftgröße um 1 erhöhen
schriftGroesse++;
System.out.println(schriftGroesse);
pack();}
//wurde auf Kleiner geklickt
if (e.getActionCommand().equals(">")){
//die Schriftgröße um 1 verringern
schriftGroesse--;
System.out.println(schriftGroesse);
pack();}
//und neu setzen
ausgabe.setFont(new Font("Arial", Font.PLAIN, schriftGroesse));
//das Fenster neu "packen"
pack();

}

}

//der Konstruktor
//er erzeugt die Komponenten und setzt die Fenstereinstellungen
public TextSpielereiGUI(String titel) {
//den Konstruktor der Basisklasse aufrufen und den Fenstertitel übergeben
super(titel);
//die beiden Schaltflächen
schaltflaecheGroesser = new JButton("<");
schaltflaecheKleiner = new JButton(">");
//ein leeres Label
ausgabe = new JLabel();
ausgabe.setFont(new Font("Arial",Font.PLAIN, schriftGroesse));

//die Größe für die Schrift setzen
schriftGroesse = 10;

//die Schriftart im Label setzen

//ein Layout anwenden
setLayout(new GridLayout(0,2));
add(schaltflaecheGroesser);
add(schaltflaecheKleiner);
add(ausgabe);

//den Listener verbinden

MeinKompakterListener listener = new MeinKompakterListener();
addWindowListener(listener);
schaltflaecheGroesser.addActionListener(listener);
schaltflaecheKleiner.addActionListener(listener);


Integer.toString(schriftGroesse);
JLabel schriftGroesse;
schriftGroesse = new JLabel();
schriftGroesse.setFont(new Font("Arial",Font.PLAIN, 10));
add(schriftGroesse);

//das Fenster packen
pack();
//die Standardaktion beim Schließen festlegen
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//das Fenster anzeigen
setVisible(true);
}
}
package textTauscher2;

public class TextSpielereiProgramm {
public static void main(String[] args) {
new TextSpielereiGUI("Eine Spielerei mit Text");
}

}

[/code]
 

Marco13

Top Contributor
Nur überflogen, das
JLabel schriftGroesse;
das da steht sollte wohl als
private JLabel schriftGroesseLabel;
oben stehen, und dann könnte man im ActionListener in der actionPerformed sowas machen wie
schriftGroesseLabel.setText(String.valueOf(schriftGroesse));
 

turtle

Top Contributor
ich hab dein Problem wohl nicht richtig verstanden. Meintest Du so etwas?

PS: Bitte achte auf deine Kommentare, diese sollten nicht das Offensichtliche was der Code schon aussagt, beschreiben. Ich bin der Meinung das "<" die Grösse vermindern sollte, daher habe ich das getauscht.

Java:
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class TextSpielereiGUI extends JFrame {

	private final JLabel ausgabe;
	private final JButton schaltflaecheGroesser, schaltflaecheKleiner;
	private int schriftGroesse;
	private final JLabel schriftSize;

	class MeinKompakterListener extends WindowAdapter implements ActionListener {
		@Override
		public void windowOpened(WindowEvent e) {
			String eingabe = "";
			eingabe = JOptionPane.showInputDialog("Geben Sie einen Text ein");
			ausgabe.setText(eingabe);
			schriftSize.setText("" + schriftGroesse);
			pack();
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			if (e.getActionCommand().equals("<")) {
				schriftGroesse--;
				schriftSize.setText("" + schriftGroesse);
				System.out.println(schriftGroesse);
				pack();
			}
			if (e.getActionCommand().equals(">")) {
				schriftGroesse++;
				schriftSize.setText("" + schriftGroesse);
				System.out.println(schriftGroesse);
				pack();
			}
			ausgabe.setFont(new Font("Arial", Font.PLAIN, schriftGroesse));
			pack();

		}

	}

	public TextSpielereiGUI(String titel) {
		super(titel);
		schaltflaecheGroesser = new JButton("<");
		schaltflaecheKleiner = new JButton(">");
		ausgabe = new JLabel();
		schriftGroesse = 20;
		ausgabe.setFont(new Font("Arial", Font.PLAIN, schriftGroesse));
		getContentPane().setLayout(new GridLayout(0, 3));
		getContentPane().add(schaltflaecheGroesser);
		getContentPane().add(schaltflaecheKleiner);

		schriftSize = new JLabel("Schriftgrösse");
		getContentPane().add(schriftSize);
		getContentPane().add(ausgabe);

		MeinKompakterListener listener = new MeinKompakterListener();
		addWindowListener(listener);
		schaltflaecheGroesser.addActionListener(listener);
		schaltflaecheKleiner.addActionListener(listener);
		pack();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	public static void main(String[] args) {
		new TextSpielereiGUI("Eine Spielerei mit Text");
	}
}
 

tinche_st

Mitglied
Vielen Dank!
ihr habt mir sehr sehr geholfen und jetzt macht es was es machen soll!
Ich habe getContentPane(). nicht gekannt, aber jetzt macht alles einen Sinn.:idea:
Nur habe ich noch eine Frage an turtule:
Wieso hast du die Variablen JLabel und JButton als final vereinbart, macht das einen Unterschied?
Vielen vielen Dank!!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
E Aktuelle Uhrzeit auf jeder Stage anzeigen lassen (JavaFX) AWT, Swing, JavaFX & SWT 2
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
M Java FX Immer aktuelle Mausposition anzeigen AWT, Swing, JavaFX & SWT 6
K Swing Aktuelle Uhrzeit anzeigen AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
P Aktuelle Zeile in JTextPane farblich hervorheben AWT, Swing, JavaFX & SWT 3
B aktuelle Position des Fensters ermitteln AWT, Swing, JavaFX & SWT 3
M Aktuelle Mausposition im Koordinatensystem AWT, Swing, JavaFX & SWT 3
G Aktuelle Mausposition auslesen und ausgeben AWT, Swing, JavaFX & SWT 2
G aktuelle panel herausfinden AWT, Swing, JavaFX & SWT 7
S aktuelle möglichkeit images zu laden? AWT, Swing, JavaFX & SWT 2
S [AWT] Aktuelle Version, bzw. Referenz? AWT, Swing, JavaFX & SWT 3
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
M Java FX größe der shapes anpassen AWT, Swing, JavaFX & SWT 0
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
Neumi5694 Größe von Komboboxen neu berechnen AWT, Swing, JavaFX & SWT 3
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
T Swing Größe des Randes AWT, Swing, JavaFX & SWT 2
C LayoutManager JFrame größe und ausrichtung + Position von Fensterelementen AWT, Swing, JavaFX & SWT 2
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
N JPanel größe wissen/festlegen vor dem Anzeigen AWT, Swing, JavaFX & SWT 3
U Größe eines Button im Menü ändern AWT, Swing, JavaFX & SWT 1
G JavaFX Größe der Parentknoten AWT, Swing, JavaFX & SWT 5
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
SimonRap Swing JFrame Größe zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Größe der JFrame Decorations herausfinden? AWT, Swing, JavaFX & SWT 4
O Swing Jpanel autom. auf JFrame Größe bringen AWT, Swing, JavaFX & SWT 6
M Swing JLabel mit fester größe nachträglich formatieren AWT, Swing, JavaFX & SWT 2
A JComponent Größe AWT, Swing, JavaFX & SWT 8
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
S Swing TextPane größe beschränken AWT, Swing, JavaFX & SWT 2
R Ellipse2D ändert Größe AWT, Swing, JavaFX & SWT 3
H Swing JButton größe ändern AWT, Swing, JavaFX & SWT 5
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
P JPanel Größe ändern AWT, Swing, JavaFX & SWT 22
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
C Button Größe einstellen klappt nicht (setBounds) AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Canvas Problem(Größe) AWT, Swing, JavaFX & SWT 6
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S Die größe eines JButton ändern AWT, Swing, JavaFX & SWT 7
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
P Tatsächliche Größe für Applet AWT, Swing, JavaFX & SWT 3
C Swing GridBag-Probleme (Größe und Ausrichtung) AWT, Swing, JavaFX & SWT 3
K JFrame Größe ändern AWT, Swing, JavaFX & SWT 4
M jTable - Größe beim Erzeugen AWT, Swing, JavaFX & SWT 4
hdi Swing JFrame Größe ermitteln AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben