У меня есть два класса: класс JDialog и JFrameJDialog SetVisible
Когда я нажимаю кнопку в JFrame, она вызывает класс JDialog и получает текст на текстовое поле внутри JDialog и устанавливает его в другой переменной. Вот псевдокоде
class JFrame {
private jDialog jd;
private JButton b;
public JFrame(){
b actionListener {
jd = new jDialog();
jd.setModal(true);
jd.setVisible(true);
String someString = jd.getString();
checkIfExists(someString);
}
}
}
public void checkIfExists(String someString){
if(someString exists) {
JOptionPane.showMessageDialog(null,"String exists);
jd.setVisible(true);
} else {
save someString
jd.setVisible(true);
}
}
class jDialog {
private JButton a;
private String s = "";
private JTextField t;
public jDialog{
a actionListener {
s = t.getText();
setVisible(false);
}
}
public String getString() {
return s;
}
}
Когда я ввожу строку, которая существует, он предлагает JOptionPane, что она существует, но программа проходит только один раз. Когда я пытаюсь редактировать текстовое поле, он не возвращается к «проверке» строки, если она существует, вместо этого поток останавливается на «setVisible (false)» на «actionListener» в «классе jDialog», который я отслеживал он использует system.out. (то же самое применимо для! существует, он сохраняется только один раз, и когда я пытаюсь сохранить другую несуществующую строку, она останавливается)
Любая идея, как сохранить jDialog? Я использую setVisible(), чтобы скрыть его, а не dispose();
Вместо этого предлагайте пользователю 'JFileChooser'. И используйте логическую и согласованную форму отступов и строк кода. Отступы предназначены для того, чтобы поток кода стал проще следовать! –
Я использую базу данных mysql – meatno
Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer