标签: joptionpane

JOptionPane.showInputDialog的用户输入验证

我刚刚学习JAVA并且在代码的这个特定部分遇到了一些麻烦.我搜索了几个网站并尝试了许多不同的方法,但似乎无法弄清楚如何实现一个适用于不同可能性的方法.

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;
Run Code Online (Sandbox Code Playgroud)

我想我需要进行某种类型的验证,即使用户没有输入以及不是1,2或3的输入.任何人都有关于如何实现这一点的建议?

我尝试了一个while循环,一个if语句在将输入转换为整数之前检查null,以及几个不同类型的if else if方法.

提前致谢!

java validation joptionpane

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

获取对JOptionPane静态方法创建的对象的引用

我想知道是否有可能获得对JOptionPane的静态方法之一(例如showMessageDialog)创建的(JDialog?)对象的引用?我打算修改对话框出现在屏幕上的位置.更具体地说,我希望对话框显示在主应用程序窗口的左上角,而不是默认情况下窗口的中心.因此,对该对象的引用将使我能够使用setLocation来实现所需的效果......

任何建议将不胜感激!谢谢!

java swing joptionpane

5
推荐指数
1
解决办法
2052
查看次数

如何为此密码字段提供焦点?

这可能看起来微不足道,但我无法弄清楚如何在此对话框焦点中给出密码框.

import javax.swing.JOptionPane;
import javax.swing.JPasswordField;

public class PasswordBox {
    @SuppressWarnings("unused")
    public String prompt() {
        JPasswordField pass = new JPasswordField(10);
        int action = JOptionPane.showConfirmDialog(null, pass,"Enter Password",JOptionPane.OK_CANCEL_OPTION); 
        return new String(pass.getPassword());
    }
}
Run Code Online (Sandbox Code Playgroud)

我从其他类调用它: String tmpPASS = new PasswordBox().prompt();

出于某种原因,当对话框出现时,"确定"按钮会获得焦点.

stacktrace(参见Eng.Fouad的回答):

at javax.swing.JComponent.addNotify(Unknown Source)
at PasswordBox$1.addNotify(PasswordBox.java:14)
at java.awt.Container.addNotify(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java passwords swing joptionpane jpasswordfield

5
推荐指数
1
解决办法
5610
查看次数

确保标题在JOptionPane上完全可见

我有一个带有短消息的消息框.如何确保消息框的标题不会被截断并且完全可见?

java swing joptionpane

5
推荐指数
1
解决办法
176
查看次数

JOptionPane与JDialog

这是Javaranch中线程的交叉插件(包括一些图像):http://www.coderanch.com/t/567472/GUI/java/Optimal-solution-creating-multiple-dialog

我正在尝试开发一个简单的swing桌面应用程序,我想象很多不同的对话框跳转来获取用户输入.需要在各种对话框窗口中显示标签,文本字段,密码字段,组合框,复选框等.

例如:第一手创建数据库,创建第一个管理员帐户,添加用户,更改用户帐户等.

我理解JOptionPane用于创建简单快速简单的模态对话框.我真的很想知道为什么在这种情况下人们会选择一个而不是另一个.哪一个更适合使用:JOptionPane与JDialog

此外,我可以使用一些指针,如何适当地设计和实现它.

谢谢.

java swing jdialog joptionpane

5
推荐指数
2
解决办法
9287
查看次数

JOptionPane 变灰一键

我需要使用 aJOptionPane为用户提供两个选项。根据之前的操作,可能需要禁用其中一个按钮。

是否可以将JOptionPane任一按钮设置为禁用或启用?

我怎样才能做到这一点?

java swing joptionpane

5
推荐指数
1
解决办法
1410
查看次数

设置Nimbus LookandFeel后,Java Swing JOptionPane是和否按钮的字体大小不同

由于在默认的LookAndFeel中字体大小太小,我使用几行代码将其设置为Nimbus,而我的JOptionPane显示具有不同大小的YesNo按钮. 仍然非常小,而" 否"设置为我指定的大小.有谁知道为什么或如何解决它?

public static void setUIFont(Font a){
    FontUIResource ax=new FontUIResource(a);
    javax.swing.UIManager.put("OptionPane.messageFont", ax);
    javax.swing.UIManager.put("OptionPane.buttonFont", ax);
    javax.swing.UIManager.put("OptionPane.Font", ax);
    javax.swing.UIManager.put("InternalFrame.titleFont", ax);
    javax.swing.UIManager.put("TextField.font", ax);
    javax.swing.UIManager.put("ComboBox.font", ax);
}
Run Code Online (Sandbox Code Playgroud)

...

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 

class UseNimBus extends SwingInvoker{
    public void run(){
        JDialog.setDefaultLookAndFeelDecorated(true);
        setUIFont(new FontUIResource(new Font(ufont, Font.PLAIN, 20)));
    }
}
(new UseNimBus()).execute();// just invokeLater()
Run Code Online (Sandbox Code Playgroud)

以下行显示选项窗格,但它具有" 是"和" 否",具有不同的大小.这是正常还是只是我的问题?

inputValuex=JOptionPane.showConfirmDialog(
    myWin, "Are you exiting?", "You clicked X", JOptionPane.YES_NO_OPTION);
Run Code Online (Sandbox Code Playgroud)

更新

还是行不通.我试过使用代码

javax.swing.UIManager.put("OptionPane.isYesLast", true);

更改按钮的位置,但它没有任何效果.我只是想看看如何设置这些值,如布尔值.

另外,我甚至列出了UIManager.getDefaults() …

java swing look-and-feel joptionpane nimbus

5
推荐指数
1
解决办法
1851
查看次数

如何使用文本字段创建弹出窗口?

我想在用户单击"从文件加载"按钮时创建一个弹出窗口.我希望该弹出框有一个文本框和一个"确定""取消"选项.

我已经阅读了很多Java文档,我看不到简单的解决方案,感觉我错过了一些东西,因为如果有一个JOptionPane允许我向用户显示文本框,为什么没有办法检索该文本?

除非我想创建一个"在文本框中键入文本并单击确定"程序,但现在我正在做的事情.

java joptionpane

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

一个数的除数列表

这是我的第一篇文章因此不要踩我,如果我写了一些愚蠢的事.

我刚刚开始上课,今天在"while"循环课上,我的导师给了我们以下的功课:

编写一个读取自然数n的程序,并在一个图形框中显示所有除数的区间[2; N-1].

到目前为止,我提出了一个有效的代码但结果有点错误:

import java.util.Arrays;
import javax.swing.JOptionPane;

public class Divisors {
    public static void main(String[] args) {
        String n = JOptionPane.showInputDialog(null, "Enter a natural number");
        Integer i = Integer.parseInt(n);

        int d = i - 1;
        int x = 2;
        int[] dvr = new int[i]; // [i] because bigger numbers need more iterations

        while (x >= 2 && x <= d) {
            double y = i % x;

            if (y == 0) {
                dvr[x] = x;
                x …
Run Code Online (Sandbox Code Playgroud)

java arrays while-loop joptionpane

5
推荐指数
1
解决办法
1478
查看次数

在 JOptionPane 中显示 JDateChooser

我想JDateChooser根据用户的一些选择在选项窗格中显示一个组件。关键是我尝试JDateChooser使用下一个代码获得我希望它出现的方式:

JOptionPane.showInputDialog(null, new JDateChooser(),"Start date", JOptionPane.PLAIN_MESSAGE);
Run Code Online (Sandbox Code Playgroud)

我尝试了不同种类的JOptionPane变体,但我无法弄清楚如何完成此操作,用户必须能够选择日期并通过单击按钮进行确认,以便我可以检索该日期并将其用作String.

我想要这样的东西:

String s = JOptionPane.showInputDialog(null,"Text", "More Text", JOptionPane.INFORMATION_MESSAGE);
Run Code Online (Sandbox Code Playgroud)

这样我就可以得到选定的日期。我正在使用 jcalendar-1.4.jar

java joptionpane jcalendar jdatechooser

5
推荐指数
1
解决办法
4958
查看次数