我想检查我的内部框架下的ActionListener是否在工作。但是实现ActionListener的内部类不会读取注册的按钮。有什么原因吗?
员工框架视图
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);
}
}
我看不出你发布的代码有任何问题。可能你的问题出在代码中的某个地方,你没有包含在这里(我敢打赌,有些东西会打乱引用,因为你没有包含将按钮添加到屏幕中的编码。)。
我正在尝试构建一个基于按钮的动态应用程序,这些按钮从创建的面板内部切换JFrame的主面板(这是我的应用程序的顶部内容)。 这个问题更多的是设计问题,而不是开发问题。我不确定我的设计,但我会试着解释一下。 我有一个JFrame代表我的应用程序,其中包含一个JTabbedPane(和多个Tabs)。每个选项卡都包含一个默认的JPanel,在那个JPanel中,我调用一个正在呈现我的视图的控制器(我正
我有一个扩展JDesktopPane的类,其中有一个JInternalFrame,我可以将其图标化,我非常喜欢这个,但是当我将其图标化时,它会转到屏幕的左侧底部。我想将其更改为屏幕的右侧顶部。有人对如何设置该位置有任何建议吗?
可能重复: 在Play框架2.0中使用MySQL数据库所需的步骤 我试图在IntelliJ中运行Play 2.0 framework应用程序,但它给出了一个错误:未找到驱动程序:[com.mysql.jdbc.Driver]。但它在Eclipse中运行良好。 我在conf文件中看了很多次,但没有找到任何错误。 任何帮助都很感激。
嗨,我在容器内创建了三个帧,每个帧都有三个按钮,执行最小值,最大值和关闭功能。令人惊讶的是,只有一帧在工作,其余三帧不起作用。你能不能整理一下。
*J一个Java程序动态分析工具。这个工具包是为两个主要的目的服务: 1.帮助收集Java程序动态执行数据 2.提供一个框架来快速简便地分析这些收集到的数据。
我试图在JPanel上画一些简单的形状,但是有一些困难。如果这个问题似乎以前已经回答过,但其他答案似乎没有帮助,请原谅。 我遵循了一个简单的教程,并成功地在JFrame上绘制了一些基本形状,但是当我将代码如何移动到一个扩展JPel的新类中时,屏幕上什么也没有出现。 我尝试过设置首选大小,重新验证和重新绘画。我添加了对super.paint组件的调用,尽管当我直接绘制到JFrame时,这两个调用都不