2

在此处输入图像描述我正在尝试创建一个汽车 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

4

1 回答 1

5

我尝试使用 ListValueChanges 方法,但没有奏效。

我看不到您将侦听器添加到 JList 的位置。你需要:

  1. 让您的班级实现 ListSelectionListener
  2. 车辆列表.addListSelectionListener(这个);

查看有关如何编写列表选择侦听器的 Swing 教程以获取工作示例。教程示例是一种更好的方法,因为它不是让类实现侦听器的好主意,但我只是让您快速了解出了什么问题。

于 2013-09-17T15:15:36.143 回答