gsi*_*011 1 java swing width joptionpane jspinner
我正在尝试将JSpinner放在JOptionPane中,如下所示,
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);
Run Code Online (Sandbox Code Playgroud)
这是有效的,但唯一的问题是,无论我设置的大小如何,JSpinner都会填充Dialog的宽度.我也尝试过使用setPreferredSize().我该如何解决?
为什么不把它放在JPanel中呢?
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 };
JPanel panel = new JPanel();
panel.add(new JLabel("Choose the key number for sa:"));
panel.add(saSpinner);
JOptionPane optionPane = new JOptionPane(panel,
JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog dialog = optionPane.createDialog(frame, "Change Sa Key");
dialog.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
虽然我自己,但我不知道我会为此创建一个JDialog,而只是显示JOptionPane.showConfirmDialog(...)方法:
SpinnerModel saModel = new SpinnerNumberModel(11, 1, 36, 1);
JSpinner saSpinner = new JSpinner(saModel);
Dimension d = saSpinner.getSize();
d.width = 20;
saSpinner.setSize(d);
JPanel panel = new JPanel();
panel.add(new JLabel("Choose the key number for sa:"));
panel.add(saSpinner);
int selection = JOptionPane.showConfirmDialog(frame, panel, "Change Sa Key",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (selection == JOptionPane.OK_OPTION) {
System.out.println("Sa Key is: " + saModel.getValue().toString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
584 次 |
| 最近记录: |