标签: joptionpane

使用4个选项制作JOptionPane

我需要创建一个包含4个选项的自定义对话框,但据我所知,只有一个有三个选项.这是我如何制作一个带有3个选项的选项窗格:

        Frame refFrame = DialogUtils.getReferenceFrame();

        ///TODO:
        /// - Use DialogUtils
        int option = JOptionPane.showOptionDialog(refFrame,
            msg,
            rsc.str("918"),
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.INFORMATION_MESSAGE,
            DialogUtils.INFO_ICON,
            options,
            options[0]);
Run Code Online (Sandbox Code Playgroud)

但我找不到YES_NO_CANCEL_OPTION的某种开放式替代品.有没有办法让JOptionPane允许四种选择?

java swing joptionpane

8
推荐指数
1
解决办法
3万
查看次数

JOptionPane输入到int

我试图让一个JOptionPane得到一个输入并将其分配给一个int,但我遇到了一些变量类型的问题.

我正在尝试这样的事情:

Int ans = (Integer) JOptionPane.showInputDialog(frame,
            "Text",
            JOptionPane.INFORMATION_MESSAGE,
            null,
            null,
            "[sample text to help input]");
Run Code Online (Sandbox Code Playgroud)

但我得到:

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot
be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

这听起来很合乎逻辑,我想不出另一种方法来实现这一点.

提前致谢

java int swing user-input joptionpane

8
推荐指数
2
解决办法
11万
查看次数

在JOptionPane中断两行或多行中的消息

try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://"+hostName.getText()+";" +
        "databaseName="+dbName.getText()+";user="+userName.getText()+";password="+password.getText()+";";
        Connection con = DriverManager.getConnection(connectionUrl);
        if(con!=null){JOptionPane.showMessageDialog(this, "Connection Established");}
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, e);
            //System.out.println("SQL Exception: "+ e.toString());
        } catch (ClassNotFoundException cE) {
            //System.out.println("Class Not Found Exception: "+ cE.toString());
             JOptionPane.showMessageDialog(this, cE.toString());
        }
Run Code Online (Sandbox Code Playgroud)

出现错误时,它会显示一个长的JOptionPane消息框,该消息框长于计算机屏幕的宽度.如何将e.toString()分成两个或多个部分.

java swing newline joptionpane

8
推荐指数
1
解决办法
3万
查看次数

更改JOptionPane中的"确定取消"字符串

我想知道是否可以在Java中将OK取消按钮更改为自定义字符串?我有

JOptionPane.showConfirmDialog(message, title, JOptionPane.OK_CANCEL_OPTION);
Run Code Online (Sandbox Code Playgroud)

此时,该按钮将显示"确定"和"取消".是否可以更改文本?例如"A"和"B"或日文文本?

谢谢

java swing joptionpane

8
推荐指数
1
解决办法
2万
查看次数

单击取消按钮showInputDialogue

我有一个关于按下inputDialoguebox的取消按钮的问题.我之前问过类似的问题,所以如果我好像重复自己,我会道歉.

我遇到的主要问题是,无论我是否按下取消,我的代码都会执行,即使我没有添加任何输入,也会进行套接字连接.

为什么会发生这种情况,我该如何避免这种情况?

String input = "";
           try
           {
               InetAddress host = InetAddress.getLocalHost();
               String hostAddress = host.getHostAddress();

               //setting label to host number so as to know what number to use
               labHostName.setText("(" + hostAddress + ")");

               input = JOptionPane.showInputDialog(null,"Please enter host name to access server(dotted number only)...see number on frame", "name", JOptionPane.INFORMATION_MESSAGE); 

               if(input != null && "".equals(input))//input != null && input.equals(""))   
               {
                   throw new EmptyFieldsException();



               }
               else if(input != null && !input.equals(hostAddress))
               {
                   throw new HostAddressException();


               }

               else
               {

                    clientSocket = …
Run Code Online (Sandbox Code Playgroud)

java sockets joptionpane

8
推荐指数
1
解决办法
3万
查看次数

JOptionPane - 检查用户输入并防止关闭,直到满足条件

JOptionPane除非满足用户输入字段的条件,否则有人可以告诉我是否有一种方便的方法可以防止在单击"确定"时关闭?

或者我别无选择只能使用JFrame

到目前为止我的验证逻辑.似乎不起作用,因为按钮是由于某种原因一次性可点击...

final JDialog dialog3 = new JDialog(OmniGUI.getFrame(), "Create new Node - id:" + newNodeID);
dialog3.setContentPane(theOPane);
dialog3.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

theOPane.addPropertyChangeListener(new PropertyChangeListener(){
   public void propertyChange(PropertyChangeEvent e) {

       if(e.getSource() == theOPane){
           String val = (String) ((JOptionPane) e.getSource()).getValue();

           if(val=="Create"){
               System.out.println("Checking content");                      

               if(!valid){
                   System.out.println("closing the window");    

                   dialog3.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                   dialog3.removeAll();
                   dialog3.dispatchEvent(new WindowEvent(dialog3, WindowEvent.WINDOW_CLOSING));
               }

           }
       }
   }    
});

    dialog3.setLocation(p);
    dialog3.pack();
    dialog3.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

java swing joptionpane

8
推荐指数
1
解决办法
3万
查看次数

如何在确认对话框中更改是/否选项?

我想将YES和NO改为同意/不同意.我该怎么办?

int reply = JOptionPane.showConfirmDialog(null,
                                          "Are you want to continue the process?",
                                          "YES?",
                                          JOptionPane.YES_NO_OPTION);
Run Code Online (Sandbox Code Playgroud)

java swing jbutton joptionpane

8
推荐指数
3
解决办法
2万
查看次数

带有用户名和密码输入的JOptionPane

我有自己的Dialog弹出两个文本字段,两个JLabel和一个"ok"JButton.弹出窗口是一个登录窗口.窗口工作完美我只是想知道我如何能够添加"取消"JButton,因此用户可以取消登录.

这是我的窗口代码:

public Hashtable<String, String> login(JFrame frame) {
    Hashtable<String, String> logininformation = new Hashtable<String, String>();

    JPanel panel = new JPanel(new BorderLayout(5, 5));

    JPanel label = new JPanel(new GridLayout(0, 1, 2, 2));
    label.add(new JLabel("E-Mail", SwingConstants.RIGHT));
    label.add(new JLabel("Password", SwingConstants.RIGHT));
    panel.add(label, BorderLayout.WEST);

    JPanel controls = new JPanel(new GridLayout(0, 1, 2, 2));
    JTextField username = new JTextField();
    controls.add(username);
    JPasswordField password = new JPasswordField();
    controls.add(password);
    panel.add(controls, BorderLayout.CENTER);

    JOptionPane.showMessageDialog(frame, panel, "login", JOptionPane.QUESTION_MESSAGE);

    logininformation.put("user", username.getText());
    logininformation.put("pass", new String(password.getPassword()));
    return logininformation;
}
Run Code Online (Sandbox Code Playgroud)

如果需要,请点击登录窗口的屏幕截图:

登录弹出

如果你点击右下角的"x",它也会关闭.但我想要取消JButton,如果它很容易.

  • 谢谢你的帮助

java jpanel jbutton jtextfield joptionpane

8
推荐指数
1
解决办法
2万
查看次数

你如何改变joptionpane的大小和字体?

你能改变JOptionPane文本的字体和大小吗?我尝试过它,只有当我在那个特定的java类上"运行文件"时它才有用.如果您启动整个项目,它不会更改字体.我只想改变一个特定的JOptionPane而不是全部.

这是代码:

 UIManager.put("OptionPane.messageFont", new FontUIResource(new Font(  
          "Arial", Font.BOLD, 18)));       
 JOptionPane.showMessageDialog(null,"MESSAGE","ERROR",JOptionPane.WARNING_MESSAGE);         
Run Code Online (Sandbox Code Playgroud)

java fonts swing netbeans joptionpane

8
推荐指数
2
解决办法
1万
查看次数

当我在statechange上显示一个对话框时,JCheckbox会改变状态两次,如何修复?

我有一个复选框,当用户选择它时,应生成一个带有更多信息的对话框,并在用户做出反应时做一些事情.我的代码基本上看起来像这样:

private void onItemStateChanged(java.awt.event.ItemEvent evt) {
    System.out.println("STATE CHANGED!");//TODO debug code
    if (evt.getStateChange() == ItemEvent.SELECTED) {
        int returnVal = JOptionPane.showConfirmDialog(this, "blablatext");
        if (returnVal == JOptionPane.OK_OPTION) {
            this.field1TF.setText("");
            this.field1TF.setEditable(false);
            this.field2TF.setText("");
            this.filed2TF.setEditable(false);
        }else if(returnVal == JOptionPane.NO_OPTION){
            this.field1TF.setText("");
            this.field1TF.setEditable(false);
            this.field2TF.setText("");
            this.field2TF.setEditable(false);
        }
    } else if(evt.getStateChange() == ItemEvent.DESELECTED){
        this.field1TF.setEditable(true);
        this.field2TF.setEditable(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,当我点击它时,我的复选框会一直改变状态两次.它以某种方式与JOptionPane.showConfirmDialog有关,因为如果我对它进行评论,它就会按预期工作.我不知道我应该关心的一些简单的事情,或者我需要做些什么才能得到我想要的反应?(用户点击复选框 - >被问到一个问题 - >选择是/否/取消 - >程序相应地行动)

java swing joptionpane jcheckbox

7
推荐指数
1
解决办法
4248
查看次数