gpt4 book ai didi

java - JButton 不响应点击事件

转载 作者:行者123 更新时间:2023-11-30 07:27:13 27 4
gpt4 key购买 nike

我正在处理的应用程序需要使用 JList,其中每个 ListItem 都是一个标签,后跟一个按钮。

我所做的是为文本字段创建一个具有字符串成员的类,并将类对象添加到 Jlist。

现在对于按钮,我实现了一个自定义列表单元格渲染器,如下所示:

    public renderer()
{
text=new JLabel();
button=new JButton("Track");
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Hey");

}
});
}

public Component getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus)
{
it=(item)list.getModel().getElementAt(index);
text.setText(it.tex);
return this;
}

public void paintComponent(Graphics g)
{
this.add(text);
this.add(button);
this.setVisible(true);
}

public Dimension getpreferredSize(){
Font font=UIManager.getDefaults().getFont("JLabel.Font");
Graphics g=getGraphics();
FontMetrics fm=g.getFontMetrics(font);
return new Dimension(fm.stringWidth(it.tex)+button.getWidth(),fm.getHeight()>button.getWidth()?fm.getHeight():button.getWidth());
}
}

但是当我点击它时按钮没有响应。我错过了什么?

谢谢

最佳答案

当您可以简单地创建一个带有框布局的 JPanel,将所有标签和按钮放入其中,然后在滚动 Pane 中显示此面板时,为什么要在 JList、渲染器和编辑器上遇到这么多麻烦。代码会很短,不会有任何行为问题。

一般来说,放其他组件就是JTable、JList之类的组件,几乎总是得不偿失。

关于java - JButton 不响应点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com