相关疑难解决方法(0)

EventListenerList触发顺序

在Swing应用程序中,我有许多子面板,每个子面板都听一个JSlider.周围的父面板也会监听所有子面板.为了在下面的示例中获得一致的结果,我必须首先添加父级,然后添加本地侦听器.考虑到本文中规定EventListenerList和解释的顺序,这是有道理的.我可以依赖该订单,还是应该安排发送不同的活动?

class SubPanel extends JPanel implements ChangeListener {

    private final JSlider slider = new JSlider();
    private final JLabel label = new JLabel();
    private final String name;
    private float value;

    public SubPanel(String name, float value, ChangeListener parent) {
        this.name = name;
        this.value = value;
        ...
        slider.addChangeListener(parent);
        slider.addChangeListener(this);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

附录:讨论EventListenerList似乎是实施建议而不是保证.pstanton建议的链接方法更可靠地强制执行正确的顺序.例如,SubPanelChangeListener可以简单地将事件转发到父.

    @Override
    public void stateChanged(ChangeEvent e) {
        ...
        parent.stateChanged(e);
    }
Run Code Online (Sandbox Code Playgroud)

java swing event-listener

8
推荐指数
1
解决办法
3651
查看次数

当单元格中的JComboBox中有ItemEvent时,如何获取CellRow

我有一个JTable,其中包含一个包含JComboBox的列.

我有一个附加到JComboBox的ItemListener,它对任何更改起作用.

但是,ItemListener没有获取已更改的ComboBox所在的Row的方法.

我需要行号以便在ComboBox发生更改时对同一行中的另一列进行操作.

任何帮助,将不胜感激.


这是我的简短代码.我想要完成的是在itemlistener获取更改时获取ComboBox的表行.

import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class Example extends JFrame {

    private static final long serialVersionUID = 1L;
    public static int maxX, maxY;
    public static final String[] columnHeads = {"Col 1", "Col 2", "Col 3"};

    public static void main(String args[]) throws IOException {
        Example example = new Example();
    }

    public Example() {
        //Create Table Model
        DefaultTableModel model = new DefaultTableModel();

        for (int index …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor jcombobox

6
推荐指数
1
解决办法
7962
查看次数