JSpinner Textgröße anpassen

BlubBlub

Bekanntes Mitglied
Hi,
ich habe einen JSpinner. Dieser JSpinner befindet sich in einem JPanel.
Das JPanel hat die Größe (400, 300). Diese Größe wird später variieren.
Das JPanel hat ein GridLayout. Dadurch nimmt der JSpinner automatisch
einen Platz von (400,300) Pixeln ein. Dies ist auch wunderbar. Was mich allerdings
stört ist, dass der Text im JSpinner nicht "mitwächst". Wie schaffe ich es,
dass der Text im JSpinner sich automatisch an die neue Größe anpasst?
Wie gesagt die Größe ist dabei nicht von vornerein festgelegt sondern variiert später dynamisch.

Java:
public class MyFrame extends JFrame
{
	public MyFrame()
	{
		super();
		this.setLayout(new FlowLayout());
		this.setSize(500, 400);
		
		Container contentPane = this.getContentPane();
	
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout(1,1));
		panel.setPreferredSize(new Dimension(400, 300));
		panel.setBackground(Color.CYAN);
		String[] stringArray = {"element1", "element2", "element3"};
		SpinnerListModel spinnerListModel = new SpinnerListModel(stringArray);
		JSpinner spinner = new JSpinner(spinnerListModel);
		panel.add(spinner);
		
		this.add(panel);
		
		this.setVisible(true);
	}
}
 
Dazu müsstest du in einem componentResized Listener über setFont die neue Schriftgröße zuweisen. Die kannst du ja aus der neuen Größe des Spinners berechnen.
 
Zuletzt bearbeitet:
Und wie berechne ich die neue Schriftgröße aus der Größe des JSpinners?
Ich verstehe noch nicht ganz den genauen Zusammenhang zwischen JSpinner Größe
und der Schriftgröße. Wie stehen die beiden größen zueinander in Proportion?
Wenn der JSpinner einen Pixel größer wird, setzte ich dann bei new Font(...,...,Schriftgröße)
diese von beispielsweise 12 auf 13? Sind das auch Pixelangaben?
Wenn ich mich nicht täusche ist die Schriftgröße in Point und nicht in Pixeln angegeben.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben