gpt4 book ai didi

java - JoptionPane,不允许空文本

转载 作者:行者123 更新时间:2023-12-01 17:20:20 26 4
gpt4 key购买 nike

如果用户不在 paginainicial 和 paginafinal 文本字段中输入数字,如何才能使 OK/X 按钮无法单击?

对话框

           final JTextField paginainicial = new JTextField();
final JTextField paginafinal = new JTextField();
Object[] message = {
"Número da Primeira Folha: ", paginainicial,
"Número Última Folha: ", paginafinal,
"Pedido de: " + connection.getInetAddress().getHostName(),


};
Object[] options = {"OK"};

int option = JOptionPane.showOptionDialog(null,
message,"Dados da Certidão",
JOptionPane.PLAIN_MESSAGE,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]);








// int option = JOptionPane.showConfirmDialog(null, message, "Dados da Certidão", JOptionPane.OK_CANCEL_OPTION);
ocupado = "1";

if (option == JOptionPane.OK_OPTION) {
String primeirafolha = paginainicial.getText();
String ultimafolha = paginafinal.getText();
metodos metodosBD = new metodos();
metodosBD.atualizafolha(primeirafolha, ultimafolha, caminhodoarquivo);
System.out.println("Dados inseridos.");
ocupado = "0";
JOptionPane.showMessageDialog(null, "Certidão Finalizada");
}else {
metodos metodosBD = new metodos();
metodosBD.removedadosBD(caminhodoarquivo);
File certfile = new File(caminhodoarquivo);
certfile.delete();
System.out.println("Certidão Cancelada.");}

我尝试了 if 文本,但当然 if 是在 OK 按下之后,所以不起作用:(

最佳答案

我将为此创建一个定制的模态 JDialog。您可以使用添加到文本组件中的 DocumentListener 来启用和禁用对话框上的 JButton。

<小时/>

编辑
您声明:

hummm, in the way it is, can a create a KeyListenner to the textfields to check if the typed is number??? if its number, make the OK button visibile, but how can i access the button? its not a Jbutton

如果您遵循我上面的建议并制作自己的 JDialog 并且不使用 JOptionPane,那么它一个 JButton。不,您几乎不应该在 Swing 应用程序中使用 KeyListener。如果要验证输入,请使用 JFormattedTextField 或 DocumentFilter 或 InputVerifier。

<小时/>

编辑2
您声明:

hummm, understand, i will read something about creating a modal Jdialog, thannk you :) this will work like "Jframe" isnt it? so i i will add components to it and will be possible to get Components events, property etc..

JDialog 与 JFrame 类似,因为它是顶级窗口,并且像 JFrame 一样,您可以加载 JPanel 及其将显示的所有组件,然后将 JPanel 添加到 JDialog 的 contentPane, pack() 它并将其设置为可见,但它与 JFrame 的不同之处在于它的构造函数不同。您需要传入父窗口(这里是主 JFrame)、一个字符串标题和一个 Dialog.ModalityType(可能是 APPLICATION_MODAL)。与 JOptionPane 一样,一旦将其设置为可见,调用代码中的所有代码都会暂停并等待对话框不再可见,然后再恢复。

关于java - JoptionPane,不允许空文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com