java怎样改变JOptionPane.showInputdialog()对话框的大小
2个回答
展开全部
这个方法本身是没有参数可以控制大小的,源码如下
public static Object showInputDialog(Component parentComponent,
Object message, String title, int messageType, Icon icon,
Object[] selectionValues, Object initialSelectionValue)
throws HeadlessException {
JOptionPane pane = new JOptionPane(message, messageType,
OK_CANCEL_OPTION, icon,
null, null);
pane.setWantsInput(true);
pane.setSelectionValues(selectionValues);
pane.setInitialSelectionValue(initialSelectionValue);
pane.setComponentOrientation(((parentComponent == null) ?
getRootFrame() : parentComponent).getComponentOrientation());
int style = styleFromMessageType(messageType);
JDialog dialog = pane.createDialog(parentComponent, title, style);
pane.selectInitialValue();
dialog.show();
dialog.dispose();
Object value = pane.getInputValue();
if (value == UNINITIALIZED_VALUE) {
return null;
}
return value;
}
也就是说实际上控制对话框大小的是JDialog.那么在使用的时候不要直接使用showInputDialog这个方法了,把这个方法加以封装成为一个新的方法来使用.
public class Test{
public static Object showInputDialog(Object message,int messageType,int optionType,String title,int width,int height){
JOptionPane pane = new JOptionPane(message, messageType, optionType);
pane.setWantsInput(true);
JDialog dialog = pane.createDialog(title);
dialog.setSize(width, height);
dialog.show();
dialog.dispose();
Object value = pane.getInputValue();
if(value == JOptionPane.UNINITIALIZED_VALUE)return null;
return value;
}
public static void main(String... args){
showInputDialog("请输入:",JOptionPane.QUESTION_MESSAGE,JOptionPane.OK_CANCEL_OPTION,"Test",400,300);
}
}
以上的代码帮你稍微封装了一下,觉得不满意你可以自己根据源码来修改封装的内容.我封装的方法第一个参数是显示的内容,第二个是对话框的风格,比如question,error等,第三个是按钮的风格,也就是是否包含确定取消等,第四个参数是标题,剩下俩是对话框的大小.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询