java - 通过单击列表上的项目填充文本区域

标签 java swing jtextarea jlist

enter image description here我正在尝试创建一个汽车 GUI 项目,如果我单击列表中的汽车名称,它将用汽车信息填充附近的文本框。我尝试使用 ListValueChanges 方法,但没有成功。

package vehicle;


import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class VehiclesGUI extends javax.swing.JFrame implements ListSelectionListener{

public VehiclesGUI() {
    initComponents();
    Vehicle[] vehicle = new Vehicle[4];
    vehicle[0] = new Altima();
    vehicle[1] = new Model_S();
    vehicle[2] = new Taurus();
    vehicle[3] = new Volt();
    vehicleList.setListData(vehicle);
    vehicleList.setCellRenderer(new VehicleListCellRenderer());
}
private void vehicleListValueChanged(javax.swing.event.ListSelectionEvent evt) {                                        
    Vehicle vehicle = (Vehicle)vehicleList.getSelectedValue();
    txtDisplay.setText(vehicle.getName());
    vehicleList.addListSelectionListener( this );
}
public static void main(String args[]) {
    /* Set the Nimbus look and feel */


    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new VehiclesGUI().setVisible(true);
        }

编辑:我已经实现了 ListSelectionListener 和 assListSelectionListener,但文本框仍然显示 txtDisplay

最佳答案

I tried using a ListValueChanges method but that did not work.

我不知道您将监听器添加到 JList 的位置。您需要:

  1. 让您的类实现 ListSelectionListener
  2. vehicleList.addListSelectionListener( this );

查看 How to Write a List Selection Listener 上的 Swing 教程一个工作示例。教程示例是一种更好的方法,因为对于类来说实现监听器并不是一个好主意,但我只是让您快速了解问题所在。

关于java - 通过单击列表上的项目填充文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853528/

相关文章:

java - 运行 jar 文件时不显示图标

java - 无法从 JTable 中删除空白行

Java Swing 绘制的形状消失

java - 在 ArrayList 中添加 double 的问题

java - 我如何在一个类中拥有 JTextArea,并打印到另一个类中的 JTextArea?

java - 使用泛型执行强制转换时发出警告

java - 从点分隔字符串列表创建 JTree

java - 无法从输入 URL 获取音频输入流

java - Java KeyGenerator 使用单例模式吗?

java - 从字符串中删除所有格式、编号列表、项目符号列表、空格、制表符等