動作している場合は、InternalFrameの下にActionListenerがあるかどうかを確認したいと思います。しかし、ActionListenerを実装している内部クラスは、登録されたボタンを読み取ることはありません。理由は何ですか?JInternalFrame内のJButtonがActionListenerをトリガーしません
EmployeeFrameView
public class EmployeeFrameView extends JInternalFrame
{
JButton button;
public EmployeeFrameView()
{
super("AddEmployee",true,true,true,true);
addComponentsToPane(getContentPane());
pack();
setVisible(true);
setLocation(xOffset,yOffset);
}
private void addComponentsToPane(final Container pane)
{
final JPanel content = new JPanel();
panelEmployee = new JPanel();
//Add to content and set layout
content.setLayout(new BorderLayout());
content.add(addComponentsToEmployeePanel(panelEmployee),BorderLayout.NORTH);
//Adding ScrollPane to Container.
final JScrollPane scrollPane = new JScrollPane(content, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
pane.add(scrollPane);
}
private JPanel addComponentsToEmployeePanel(JPanel panelEmployee)
{
panelEmployee.setLayout(grid);
gbc.gridx = 0;
gbc.gridy = 1;
button = new JButton("Button");
panelEmployee.add(button, gbc);
}
public void addAction(ActionListener l)
{
button.addActionListener(l);
}
}
EmployeeFrameController
public class EmployeeFrameController
{
EmployeeFrameView theView;
public EmployeeFrameController(EmployeeFrameView theView)
{
this.theView = theView;
this.theView.addAction(new addAction());
}
class addAction implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("Working");
}
}
}
メイン
public class Main
{
public static void main(String[] args)
{
EmployeeFrameView employeeFrameView = new EmployeeFrameView();
EmployeeFrameController employeeFrameController = new EmployeeFrameController(employeeFrameView);
}
}
[example](http://stackoverflow.com/a/14874924/230513)に記載されている問題を示す[mcve]を含むように質問を編集してください。 – trashgod
@trashgod最新の投稿をご覧ください:) – Francisunoxx
悲しいことに、あなたの例は不完全です。私の[example](http://stackoverflow.com/a/14874924/230513)ネットワークはありますか? – trashgod