当前位置: 首页 > 知识库问答 >
问题:

Java另一个班的JButk

唐宇定
2023-03-14

我试图在一个类中做一个按钮,它可以从桌子上删除一些东西。我让它在不单独上课的时候工作。但是,当我尝试将代码移动到一个新类并在我的main方法中创建该类的对象时,按钮不起作用。我对使用Swing很陌生,所以任何帮助都将不胜感激。

public abstract class RemoveButton extends frame implements ActionListener {
  public void actionPerformed(ActionEvent arg0) {
    DefaultTableModel model = (DefaultTableModel) table.getModel();
      if (table.getSelectedRow() == -1) {
        if (table.getRowCount() == 0) {
          Mess.setText("Table is empty");
        } else {
          Mess.setText("You need to select");
        }
      } else {
        model.removeRow(table.getSelectedRow());
      }
    }
  }
}

这个类是用来移除来宾的按钮。我扩展了框架,因为这是我的大部分变量所在的位置。从这里开始,我不太确定如何将其调用到我的主方法并使其工作。所有进口商品都已添加。

共有1个答案

松锐藻
2023-03-14

我将在这里猜测,这是我们被迫做的,因为目前写的问题还不完整,但我怀疑你滥用了继承。我猜您的主GUI由frame类持有(应该重新命名以符合Java标准,以便它的第一个字母是大写),这样做是为了让这个类可以调用frame类的方法和访问字段。如果是这样,那么您使用继承的目的是错误的,因为RemoveButton持有的“frame”实例是唯一的,并且与显示的frame实例完全不同。

相反,您应该将对实际显示的帧对象的引用传递到此类中,然后根据需要调用此对象上的方法。

例如。,

// why abstract? I've removed that
// no longer extends frame
public class RemoveButton implements ActionListener {
   // I've renamed your frame class to "MyFrame"
   private MyFrame myFrame;

   // constructor that allows you to pass in MyFrame reference
   public RemoveButton(MyFrame myFrame) {
      this.myFrame = myFrame;  // assign to field
   }

   public void actionPerformed(ActionEvent evt) {
      JTable table = myFrame.getTable(); // give MyFrame this method
      DefaultTableModel model = (DefaultTableModel) table.getModel();
      // .... etc
   }      
}

Cleaner将使用MVC设计模式,但这需要一些更前期的工作。

 类似资料:
  • 问题内容: 作为程序的一部分,我有一个连接管理器,该管理器从客户端接收连接,然后为客户端提供用于连接的端口号和密码。这时经理需要调用jar文件,我必须使用一些参数来处理此连接,然后继续操作(忽略其他程序在做什么)。 我的问题一直在执行jar文件。我查找了类似的问题,并尝试使用流程生成器和Runtime.exec。我在jar文件中移动,并检查了它的权限。它只是拒绝在另一个Java程序中工作,而在命令

  • 下面是java中的一个代码段,用于将坐标为a(10,10),B(20,10),C(20,20),D(10,20)的顶点围绕正方形的中心点旋转一个角度。正方形的边是10分。旋转角度为90度。理想情况下,旋转后A必须变成B,B必须变成C,C必须变成D,D必须变成A。 所取得的结果是不正确的 > 点A(10,10)旋转到(20,10)---正确 点B(20,10)旋转到(30,10)----不正确 nu

  • 问题内容: 什么功能可以用另一个字符串替换一个字符串? 实例1:将替代哪些用? 例2:将替代哪些用? 问题答案: 该方法是你要寻找的。 例如:

  • 问题内容: 我们没有只介绍ArrayLists数组和2D数组。我需要做的是能够从另一个类的ArrayList中读取。主要目的是在for循环中读取它们,并使用存储在其中的值显示项目。但是,我已经制作了这个快速程序来对其进行测试并不断得到此错误 这是我的代码 然后是ArrayList所在的类 如果有人可以指出正确的方向,那将非常有价值。我尝试调试,但是我可以获得任何帮助。 提前致谢。 问题答案: 严格

  • 问题内容: 我有一个,现在使用Eclipse中的为其创建Web界面。该Web项目由一个和两个组成。像这样: 现在,我需要参考的,为了使用它的类来处理Web请求。做到这一点的最佳方法是什么?我的想法是创建的,包含所有文件,以及。这样,我可以将.jar包含在Web应用程序中,并且我可以拥有一个包含整个应用程序的文件。 你怎么看?通常如何解决此问题? 注意:我不想将Java项目转换为Web项目。 问题答

  • 问题内容: 我有以下课程: 我有 为什么以下原因导致错误: 有任何想法吗? 问题答案: 对Java泛型的引用很好(jdk site )。 确实,@ Oli_Charlesworth提供了一个很好的答案,但也许这个答案会更完整。 在中,您不能插入任何正确的内容。 如果你有 和 然后,是两者的超类型: 因此写一些像这样的声明是合法的 这确实是通配符表示法存在的原因。 但是,这里的事情变得越来越有趣: