当前位置: 首页 > 面试题库 >

使JList中的按钮可单击

段干博明
2023-03-14
问题内容

我无法相信这行不通。

我有一个JList。我将其渲染器设置如下。基本上RankingPanel是一个带有两个标签和一个按钮的JPanel。

topAchieverList = new JList();
topAchieverList.setCellRenderer(new TopBottomCellRenderer());

这是我的TopBottomCellRenderer。

class TopBottomCellRenderer extends RankingPanel implements ListCellRenderer {

    public TopBottomCellRenderer() {
    }

    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        try {
            Achievers achiever = (Achievers) value;

            if (achiever == null) {
                return this;
            }
            itemRank.setText("#" + achiever.rank);
            itemUnits.setText("" + achiever.units);

            //this is the button that does not click
            itemNameButton.setText(achiever.name);

            //set bg
            if (isSelected) {
                setBackground(list.getSelectionBackground());
                setForeground(list.getSelectionForeground());
            } else {
                setBackground(list.getBackground());
                setForeground(list.getForeground());
            }
            return this;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return this;
    }
}

该列表可正确呈现,但JButton不可单击。单击它没有任何作用。

我该如何工作?


问题答案:

渲染器只是在组件上绘制的“橡皮图章”。它们不是实时的交互式组件。

请参阅以下答案:JList中的JButton以获得一种可能的解决方案。实际上,您可以在MouseListener中添加一个JList,确定在该点击点上正在渲染哪个特定按钮,然后以编程方式单击该按钮。

或者,您可以制作一个JPanel按钮,然后将面板放在中JScrollPane

或者,您可以创建一个单列JTable,在其中可以实现自定义TableCellEditor,如下所示:表按钮列



 类似资料:
  • 我正准备制作一个新的应用程序,我偶然发现了一个非常酷的侧边栏(按钮面板),我将尝试添加到应用程序中(它是Spotify上的左侧栏)。我很好奇的是这个原则(看看附上的图片)。 在顶部的3个按钮中(我假设是JList或JTable项)。 在中间我们有一个“您的音乐”标题(也许是JLabel??) 我们还有一个新的播放列表(JButton) ,然后是播放列表列表(JList还是jtable?) 我想知道

  • 问题内容: 我在Angular中有一个表单,其中有两个按钮标签。一键提交表单。另一个按钮仅用于使用进行导航。但是,当单击第二个按钮时,AngularJS导致页面刷新,从而触发404。我在函数中删除了一个断点,并触发了我的函数。如果我执行以下任何操作,它将停止: 如果删除,该按钮不会导致页面刷新。 如果我注释掉函数中的代码,则不会刷新页面。 如果我使用将按钮标签更改为锚标签(),则不会刷新。 后者似

  • 我有一个向txt文件添加条目的add按钮,还有一个由txt文件填充的jlist。当添加条目时,jlist会立即刷新。add按钮利用showinputdialog让用户添加一个条目,这里出现了问题: 1)我知道当按下取消按钮时,joptionpane返回NULL。我如何使它在按下取消时不会在txt文件和jlist中添加“NULL”?

  • 问题内容: 我正在使用Scrapy爬行网页。单击某些按钮时,仅会弹出一些我需要的信息(当然,单击后也会显示在HTML代码中)。 我发现Scrapy可以处理的形式(如登录)如图所示这里。但是问题在于没有表格可以填写,所以这不是我所需要的。 如何简单地单击一个按钮,然后显示我需要的信息? 我是否必须使用诸如机械化或lxml之类的外部库? 问题答案: Scrapy无法解释javascript。 如果你绝

  • 我正在尝试在Selenium中测试图像按钮点击。 图像是事件,当我点击sgt消息出现我 超文本标记语言代码:

  • 问题内容: 在我当前的swing项目中,我有一个JList显示所有活动套接字的窗口,每个单元都有一个JButton关闭该套接字的窗口。但是JButton单元格中的不可点击:不会触发监听器。 我将代码修改为最少,如下所示。 该列表看起来不错,但其中的按钮不可单击。我是错了还是JList不支持JButton被解雇? 问题答案: 尽管您无法获得与普通按钮单击相同的视觉效果,但以下示例似乎可行。也许某个绘