2016-05-20 7 views
0

Я хотел передать нажатой toggleButton в другой класс, но не смог этого сделать.Как передать JToggleButton в другой класс?

активность

confirm.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent e) { 
        boolean buttonClicked = false; 
        for (int i = 0; i < 30; i++) { 
         if (ButtonList[i].isSelected()) { // if toggleButton is clicked 
          buttonClicked = true; 
          fillInDetails details= new fillInDetails(title,day,time,ButtonList[i]); // pass toggleButton to another class 
          details.setVisible(true); 
          setVisible(false); 
          frame.dispose(); 
         } 
        } 
        if (!buttonClicked) { 
         JFrame parent= new JFrame(); 
         JOptionPane.showMessageDialog(parent, "You haven't select a seat"); 
        } 
       } 

      }); 

fillInDetails

public class fillInDetails extends JPanel{ 

    static JFrame frame = new JFrame("Fill in Details"); 

    public static void main(String[] args) { 
      SwingUtilities.invokeLater(() -> { 
       createAndShowGui(); 
      }); 
     } 

    static void createAndShowGui() { 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.getContentPane().add(new fillInDetails("","","","")); //Error here 
      frame.pack(); 
      frame.setLocationRelativeTo(null); 
      frame.setVisible(true); 
     } 


    public fillInDetails(String title, String day, String time, JToggleButton buttonList) { 

    } 

} 

Ошибка

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
    The constructor fillInDetails(String, String, String, String) is undefined 

    at gui.fillInDetails.createAndShowGui(fillInDetails.java:20) 
    at gui.fillInDetails.lambda$0(fillInDetails.java:14) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$500(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
+1

"Конструктор fillInDetails (String, String, String, String) не определено" Вы должны пройти 3 строк и JToggleButton, а не 4 строк. Я предлагаю вам просто передать null или пустой JToggleButton и выполнить нулевую проверку – ScriptKiddy

+0

null/new JToggleButton(); – ScriptKiddy

ответ

0

frame.getContentPane().add(new fillInDetails("","","","")

Поскольку ScriptKiddy и ваша ошибка говорят, конструктор fillInDetails(String, String, String, String) не определен.

Твое fillInDetails(String title, String day, String time, JToggleButton buttonList)