我正在努力让我的代码更加用户友好。我有这部分代码,想知道如何将其转换为joptionpane。
我找到了int result = JOptionPane.showConfirmDialog(frame, "Continue printing?");
但是使用另一个jframe似乎有点奇怪。
System.out.println("Make more selections? Type Yes or No");
Scanner scanre = new Scanner( System.in );
String selecend;
selecend = scanre.next();
if(selecend.equalsIgnoreCase("Yes")) {
System.out.println("Enter next selection: ");
query();
};
答案 0 :(得分:2)
我认为您可能想要使用JFrame,因为您可以更改所有系统输出打印消息以使用类似标签状态(可根据消息更改文本的JLabel) 您仍然不需要使用框架来使用showConfirmDialog。
JOptionPane.showConfirmDialog(null,"choose one", "choose one", JOptionPane.YES_NO_OPTION);
您可以查看JOptionPane
的示例和文档示例中的框架是此对话框消息的父级:
parentComponent -
determines the Frame in which the dialog is displayed;
if null, or if the parentComponent has no Frame, a default Frame is used
我认为如果对话框处于活动状态,此父级用于防止对父框架的关注。在继续使用程序之前必须接受或关闭对话框时,类似于Windows警报的东西会锁定gui。
答案 1 :(得分:2)
更加用户友好
下一个怎么样?
private Something showMessage() {
// null for 'console' mode or this if the enclosing type is a frame
Component parentComponent = null;
Object message = "Make more selections?";
String title = "Message";
int optionType = JOptionPane.YES_NO_OPTION; // 2 buttons
int messageType = JOptionPane.QUESTION_MESSAGE; // icon from style
Icon icon = null;
// String in the buttons!
Object[] options = { "Yup!", "Nope!" };
// option saves the index 'clicked'
int option = JOptionPane.showOptionDialog(
parentComponent, message, title,
optionType, messageType, icon,
options, options[0]);
switch (option) {
case 0:
// button with "Yup!"
break;
case 1:
// button with "Nope!"
break;
default:
// you close the dialog or press 'escape'
break;
}
return Something;
}
答案 2 :(得分:1)
试过这个并且有效:
int dialogresult = JOptionPane.showConfirmDialog (null, "Continue Selecting?");
if(dialogresult == JOptionPane.YES_OPTION){
query();
}else if(dialogresult == JOptionPane.NO_OPTION) {
}