Ich versuche, eine JSpinner in einem JOptionPane setzen sich wie folgt,JSpinner nimmt gesamte Breite in JOptionPane bis
SpinnerModel saModel = new SpinnerNumberModel(11, 1, 36, 1);
JSpinner saSpinner = new JSpinner(saModel);
Dimension d = saSpinner.getSize();
d.width = 20;
saSpinner.setSize(d);
Object[] message = { "Choose the key number for sa.", saSpinner };
JOptionPane optionPane = new JOptionPane(message,
JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog dialog = optionPane.createDialog(frame, "Change Sa Key");
dialog.setVisible(true);
Dies funktioniert, aber das einzige Problem ist, dass die JSpinner die Breite des Dialog füllt, unabhängig davon, die Größe, die ich eingestellt habe. Ich habe versucht, setPreferredSize() auch zu verwenden. Wie behebe ich das?
Ja, ich auf die showConfirmDialog Methode tatsächlich eingeschaltet vor Du hast sogar deine Antwort gepostet. Aber Ihre JPanel-Methode funktioniert gut, also werde ich Ihre Antwort akzeptieren, sobald SO es mir erlaubt :) – gsingh2011
'JPanel panel = new JPanel();' Huh. Sehr elegant - ein linksbündiges 'FlowLayout'. Kurz und gut. Ich werde immer nervös, wenn ich das Standardlayout einer Komponente akzeptiere, und mich an Suns Entscheidung erinnern, den Standard eines Frames von 'FlowLayout' auf' BorderLayout' um 1,5 (?) Zu ändern. –
+1 Mehr zu 'JSpinner' Layout in diesem [Q & A] (http://stackoverflow.com/q/7374659/230513). – trashgod