#java
#java
Вопрос:
Я создал простой графический интерфейс на Java, чтобы проверить работу кнопки click. Но когда я нажимаю на кнопку, кнопка не работает.
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class rigotechnology implements ActionListener{
JFrame test;
JButton Try;
public void main(){
JFrame test = new JFrame("TEST FILE");
test.setLayout(null);
JButton Try = new JButton("TRY");
Try.setBounds(50,50,80,80);
test.add(Try);
test.setSize(200,200);
test.setVisible(true);
Try.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==Try){
JOptionPane.showMessageDialog(test,"hello");
}
}
public static void main(String args[]){
rigotechnology o = new rigotechnology();
o.main();
}
}
Комментарии:
1. Что означает «не работает»? Что бы он делал, если бы он «работал», и что он делает вместо этого?
2.
JButton Try = new JButton("TRY");
<- это не использование поля urJButton Try;
, вы создаете новую локальную переменную с тем же именем.Try = ...
НеJButton Try = ...
делайте этого.3. Пожалуйста, придерживайтесь соглашений об именах,
try
, неTry
. И избегайте имен, которые уже заняты ключевыми словами, выберите что-нибудь более подходящее. Кроме того, что он пытается? Почему бы и нетtryOptionButton
или что-то в этом роде.
Ответ №1:
В вашем методе main() вы переопределяете локальную JButton Try , поэтому Try в actionPerformed всегда имеет значение null .
public void main(){
test = new JFrame("TEST FILE");
test.setLayout(null);
Try = new JButton("TRY");
Try.setBounds(50,50,80,80);
test.add(Try);
test.setSize(200,200);
test.setVisible(true);
Try.addActionListener(this);
}
Комментарии:
1. что я могу сделать, чтобы при нажатии кнопки «Попробовать» появлялось сообщение «Привет»?