Когда я запускаю свою основную часть класса ButtonSample, кнопка появляется и работает по назначению, но не может быть нажата более одного раза. Что заставляет это произойти, и что я должен изменить, чтобы сделать эту работу должным образом и нажать кнопку, которую можно нажать несколько раз. Это как-то связано с моим действующим лицом. Также, когда я пытаюсь нажать кнопку выхода, кнопка не закрывается до тех пор, пока я не перезапущу виртуальную машину Java, как бы я ее исправить тоже.Невозможно нажать JButton больше одного раза bluej
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
public class ButtonSample extends JFrame implements ActionListener
{
String[] et = {};
JButton button1;
public ButtonSample() throws IOException
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(100, 100);
setLocation(100, 100);
button1 = new JButton("GO");
button1.addActionListener(this);
add(button1);
setVisible(true);
}
public static void main(String[] args) throws IOException
{
new ButtonSample();
}
@Override
public final void actionPerformed(ActionEvent e) //throws IOException
{
try{
String command = e.getActionCommand();
String[] arr = {};
if(command.equals("GO")) {
tester.main(arr);
}
}catch(IOException io){ }
}
}
public class tester
{
public static void main(String[] args) throws IOException
{
String[] err = {};
try
{
boolean go = true;
Scanner in = new Scanner(System.in);
while(go)
{
Reader r = new Reader();
Three t = new Three();
String[] run = {};
String[] list = Reader.main(run);
int one = t.get1();
int two = t.get2();
int three = t.get3();
t.check(one, two, three);
System.out.println("The three names are...");
System.out.println(list[one] + " " + list[two] + " " + list[three]);
System.out.print("Play again?(Y/N): ");
String check = in.next();
if(check.equals("n") || check.equals("N"))
{
go = false;
System.exit(0);
}
System.out.print('\u000C');
}
} catch (StackOverflowError e)
{
System.out.print('\u000C');
tester.main(err);
}
}
}
'catch (IOException io) {}' ??? –
Мне нужно выбросить IOException внутри другого класса, поэтому я добавил его там, потому что я мог думать о любом другом способе, чтобы заставить класс actionPerformed его бросить. – vlovero
@vlovero ok, но пустой блок блокировки не является хорошим –