java - 如何使用Java中的按钮实例化对象?

标签 java swing

我对 Java 有点陌生(我只有处理经验),我有一个问题。

我正在 Eclipse 中构建一个小型任务规划应用程序。我正在使用 MigLayout。每个任务都有自己的行(见图)。我使用三个类:TaskRowDone、TaskRowBusy 和 TaskRowToDo。

The app

public HoofdScherm() {
    initialize();
    drawDone();
    drawBusy();
    drawToDo();
    drawNewBtn();
}

上面的代码绘制了主屏幕。下面的代码绘制了标记为“Nieuwe taak”(新任务)的按钮。我希望能够单击此按钮来创建新的任务行。我尝试将行 TaskRowToDo trtd3 = new TaskRowToDo(5, true, "test", 3);trtd3.draw() 放在 actionPerformed 中 按钮的功能(作为测试的一种方式),但这似乎没有做任何事情。程序是否只运行“HoofdSchem”内部的函数一次,然后停止绘制?如果是这种情况,我该如何构建程序以便始终可以更改布局?我在“HoofdScherm”内尝试了 while(true) 循环,因此它一直循环,但这当然导致了计算机崩溃。

private void drawNewBtn(){
    JButton btnNew = new JButton("Nieuwe taak");
    btnNew.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("New task added");   
        }
    });
    frmPlanner.getContentPane().add(btnNew, "cell 3 7");
}

最佳答案

我发现我需要使用 revalidate() 和 repaint() 来重绘框架。来源:Java Swing revalidate() vs repaint()

关于java - 如何使用Java中的按钮实例化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293960/

相关文章:

java - @Controller 类需要是原型(prototype)还是单例?

java - Log4j2 锁定 Tomcat 上的日志文件?

java - 为什么/何时调用 ComponentListener.componentShown()?

java - 在Hibernate中持久化后获取数据库生成的ID

java - 为什么我不能用Number接口(interface)计算?

java - 如何使用 JSPinner 动态设置 JTextFields?

java - 为什么 MouseListener 不起作用?

java - 等待 JTextField "SPACE"事件

java - 使用 AbstractTableModel 从 JTable 中删除或添加行

java - 为什么不显示带有单选按钮的第二个面板?