Как мне выполнить программу Java при выборе переключателя

#java

#java

Вопрос:

Как мне выполнить программу Java при выборе переключателя

  class abc implements ActionListener {
   public static void main (String args[]){  

        JFrame frame = new JFrame("Test Frame"); 
        JPanel panel = new JPanel();
        Container contpane; contpane = frame.getContentPane();

        //added all  Radio  Buttons  
        JRadiobutton jb = new
        JRadioButton("test1");  JRadiobutton
        jb1 = new JRadioButton("test2");  
        jb.addActionListener( this ); 
        jb.addActionListener( this );//when i say "this" it is giving complie time
                  error becaus this keyword will not be accesible

        }

        public void actionPerformed(ActionEvent evt){

  How do i create the JTextArea and
  Execute the Java class abc.java  in
  that JTextArea How do i add the 
  JTextArea to the panel and Frame

  what should i write inorder to execute
  the java class  say abc.java  


   } 
  }
  

Комментарии:

1. Сообщение об ошибке правильное, поскольку внутри статического метода нет «this». Решение: не делайте этого в статическом основном методе, а делайте это в нестатическом методе или конструкторе, как показывает Bala.

Ответ №1:

Чтобы ответить на ваш первый вопрос, реструктурируйте свой код для создания фрейма и его содержимого в конструкторе вашего класса следующим образом

 class abc implements ActionListener {
    public static void main(String args[]) {

        new abc();
    }

    abc() {
        JFrame frame = new JFrame("Test Frame");
        JPanel panel = new JPanel();
        Container contpane;
        contpane = frame.getContentPane();

        // added all Radio Buttons
        JRadiobutton jb = new JRadioButton("test1");
        JRadiobutton jb1 = new JRadioButton("test2");
        jb.addActionListener(this);
        jb.addActionListener(this);

    }

    public void actionPerformed(ActionEvent evt) {

    }
}
  

и я не понимаю других вопросов.

Комментарии:

1. Bala R: Как мне создать JTextArea внутри actionPerformed() и добавить его на панель и фрейм и выполнить класс Java внутри этого метода