Hallo,
ich bin gerade dabei zu verzweifeln :bahnhof: Eigentlich habe ich nur ein ganz kleines Anliegen, aber wahrscheinlich sehe ich gerade den Wald vor lauter Bäumen nicht. Ich möchte die Höhe eines JButtons festlegen, die Breite soll aber dynamisch angepasst werden.
Wenn ich button.setPreferredSize(new Dimension(5,15)) verwende, wird der Button auch 5x15cm gezeichnet. Die Breite kenne ich aber nicht, also nehme ich button.setPreferredSize(new Dimension(0,15)) - jetzt wird aber eine Breite von 0px statt der benötigten Breite verwendet, wie ich es gehofft hatte. Die benötigte Breite kann ich auch nicht erfragen, da ein button.getWidth() beim ersten Mal 0px liefert, da der Button ja noch nie gezeichnet wurde.
Verwende ich hingegen button.setSize(new Dimension(0,15)), wird die Breite zwar dynamisch angepasst, aber die Höhe ist nicht 15, sondern 25px ???:L
Wie ihr seht, stehe ich gerade voll auf dem Schlauch. Wie bekomme ich den Button niedriger?
ich bin gerade dabei zu verzweifeln :bahnhof: Eigentlich habe ich nur ein ganz kleines Anliegen, aber wahrscheinlich sehe ich gerade den Wald vor lauter Bäumen nicht. Ich möchte die Höhe eines JButtons festlegen, die Breite soll aber dynamisch angepasst werden.
Wenn ich button.setPreferredSize(new Dimension(5,15)) verwende, wird der Button auch 5x15cm gezeichnet. Die Breite kenne ich aber nicht, also nehme ich button.setPreferredSize(new Dimension(0,15)) - jetzt wird aber eine Breite von 0px statt der benötigten Breite verwendet, wie ich es gehofft hatte. Die benötigte Breite kann ich auch nicht erfragen, da ein button.getWidth() beim ersten Mal 0px liefert, da der Button ja noch nie gezeichnet wurde.
Verwende ich hingegen button.setSize(new Dimension(0,15)), wird die Breite zwar dynamisch angepasst, aber die Höhe ist nicht 15, sondern 25px ???:L
Wie ihr seht, stehe ich gerade voll auf dem Schlauch. Wie bekomme ich den Button niedriger?
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestToolbar extends JPanel {
public static void main(String[] args) throws Exception {
final JFrame frame = new JFrame("TestToolbar");
frame.setBounds(20, 20, 800, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final TestToolbar panel = new TestToolbar();
frame.setContentPane(panel);
frame.setVisible(true);
}
private TestToolbar() throws Exception {
setLayout(new FlowLayout());
setBackground(Color.yellow);
JButton b = new JButton("text");
b.setSize(new Dimension(0,15));
// b.setPreferredSize(new Dimension(0,15));
// b.setMinimumSize(new Dimension(0,15));
// b.setMaximumSize(new Dimension(0,15));
add(b);
}
}