java 对话框 是 否,java – JOptionPane是/否选项确认对话框问题

我创建了一个JOptionPane,它只有两个按钮YES_NO_OPTION.

弹出JOptionPane.showConfirmDialog后,我想点击YES BUTTON继续打开JFileChooser,如果我点击NO BUTTON,它应该取消操作.

这似乎很容易,但我不确定我的错误在哪里.

代码片段:

if (textArea.getLineCount() >= 1) { //The condition to show the dialog if there is text inside the textArea

int dialogButton = JOptionPane.YES_NO_OPTION;

JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);

if (dialogButton == JOptionPane.YES_OPTION) { //The ISSUE is here

JFileChooser saveFile = new JFileChooser();

int saveOption = saveFile.showSaveDialog(frame);

if(saveOption == JFileChooser.APPROVE_OPTION) {

try {

BufferedWriter fileWriter = new BufferedWriter(new FileWriter(saveFile.getSelectedFile().getPath()));

fileWriter.write(textArea.getText());

fileWriter.close();

} catch(Exception ex) {

}

}

解决方法:

您需要查看对showConfirmDialog的调用的返回值.即:

int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);

if(dialogResult == JOptionPane.YES_OPTION){

// Saving code here

}

你正在测试dialogBu​​tton,你用它来设置对话框应该显示的按钮,而且这个变量从未更新过 – 所以dialogBu​​tton永远不会是JOptionPane.YES_NO_OPTION以外的任何东西.

根据showConfirmDialog的Javadoc:

Returns: an integer indicating the option selected by the user

标签:jfilechooser,java,swing

来源: https://codeday.me/bug/20190930/1834672.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
joptionpane.showoptiondialog是Java编程语言中的一个方法,用于创建一个对话框窗口并显示一组选项供用户选择。此方法可以在Swing GUI应用程序中使用,常用于在用户与应用程序交互时获取用户的输入或选择。这个方法需要传入一些参数,例如对话框的父组件、对话框的标题、要显示的消息、要显示的选项等。调用此方法后,用户可以选择其中一个选项,或者关闭对话框窗口。joptionpane.showoptiondialog是Java Swing类库中的一个方法,用于显示一个带有选项按钮的对话框。它可以用来获取用户的选择并根据选择进行相应的操作。这个方法的语法如下: ``` public static int showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue) ``` 其中,参数的含义如下: - parentComponent:指定对话框的父组件,可以为null。 - message:要在对话框中显示的消息,可以为字符串、组件或其他对象。 - title:对话框的标题,可以为null。 - optionType:指定对话框选项类型,可以是JOptionPane.DEFAULT_OPTION、JOptionPane.YES_NO_OPTION、JOptionPane.YES_NO_CANCEL_OPTION或JOptionPane.OK_CANCEL_OPTION。 - messageType:指定对话框的消息类型,可以是JOptionPane.PLAIN_MESSAGE、JOptionPane.INFORMATION_MESSAGE、JOptionPane.QUESTION_MESSAGE、JOptionPane.WARNING_MESSAGE或JOptionPane.ERROR_MESSAGE。 - icon:指定对话框的图标,可以为null。 - options:指定对话框中的选项按钮,可以为null。 - initialValue:指定对话框默认选中的选项,可以为null。 这个方法会返回用户所选的选项按钮的索引,如果用户取消对话框,则返回CLOSED_OPTION。是的,你理解得非常正确。`JOptionPane.showOptionDialog`方法是Java Swing类库中的一个方法,可以在Swing GUI应用程序中使用。它可以用于创建一个带有选项按钮的对话框窗口,并显示一组选项供用户选择。这个方法需要传入一些参数,以指定对话框的父组件、标题、消息、选项、消息类型等信息,最终返回用户所选的选项按钮的索引。这个方法常用于在用户与应用程序交互时获取用户的输入或选择,并根据选择执行相应的操作。JOptionPane.showOptionDialog 是Java Swing API中的一个方法,用于创建带有自定义选项对话框。 这个方法的参数包括: 1. 父组件(指定对话框在哪个容器中显示) 2. 对话框的消息(可以是字符串、图标或任何其他可渲染对象) 3. 对话框的标题(字符串) 4. 选项类型(如JOptionPane.YES_NO_OPTION,JOptionPane.OK_CANCEL_OPTION等) 5. 选项的图标(可以是任何可渲染对象) 6. 选项数组(字符串数组,包含显示在对话框中的选项) 7. 默认选项(指定在对话框打开时哪个选项应该是默认选项) 当用户选择一个选项时,showOptionDialog方法将返回相应选项选项数组中的索引。 以下是一个示例,演示如何使用JOptionPane.showOptionDialog方法创建一个简单的对话框: ```java import javax.swing.*; public class OptionDialogExample { public static void main(String[] args) { JFrame frame = new JFrame("Option Dialog Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object[] options = {"Yes, please", "No, thanks", "Maybe later"}; int response = JOptionPane.showOptionDialog(frame, "Would you like to take a survey?", "Survey", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (response == JOptionPane.YES_OPTION) { System.out.println("User clicked Yes button"); } else if (response == JOptionPane.NO_OPTION) { System.out.println("User clicked No button"); } else if (response == JOptionPane.CANCEL_OPTION) { System.out.println("User clicked Maybe later button"); } } } ``` 在这个例子中,我们使用JOptionPane.showOptionDialog方法创建了一个具有三个选项对话框,并在用户选择一个选项后输出了相应的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值