- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果用户不在 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/
我是一名优秀的程序员,十分优秀!