【发布时间】:2015-02-08 15:26:06
【问题描述】:
我正在创建一个足球抽签应用程序。我目前有 9 个文本区域,其中包含 6 个不同的团队。我已将MouseListener 附加到每个文本区域。当您单击文本区域时,您会看到一个新窗口,其中每个团队都被分成一组格式。
我在尝试从文本区域获取文本时遇到问题。我可以通过在每个单独的文本区域添加MouseListener 来实现这一点,但据我所知,这违反了不要重复自己 (DRY) 原则。
我在下面包含了我的代码:
gui.getTable1().addMouseListener(new tableListener());
gui.getTable2().addMouseListener(new tableListener());
gui.getTable3().addMouseListener(new tableListener());
gui.getTable4().addMouseListener(new tableListener());
gui.getTable5().addMouseListener(new tableListener());
gui.getTable6().addMouseListener(new tableListener());
gui.getTable7().addMouseListener(new tableListener());
gui.getTable8().addMouseListener(new tableListener());
gui.getTable9().addMouseListener(new tableListener());
public static class TableListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
//get text from text area and pass to new GUI
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
我想对我的所有文本区域使用 TableListener 私有类,而不是 9 个不同的 MouseListeners。我认为这可以在一行中完成,但我想不出怎么做。有人可以帮忙吗?
【问题讨论】:
-
1+ 为 DRY 原则。请注意,我已更正您的类名称以符合 Java 代码约定:类名称以大写字母开头。
标签: java swing jtextarea mouselistener mouse-listeners