我正在尝试创建一个汽车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
答案 0 :(得分:5)
我尝试使用ListValueChanges方法,但这不起作用。
我没有看到您将监听器添加到JList的位置。你需要:
查看How to Write a List Selection Listener上的Swing教程以获取一个工作示例。教程示例是一种更好的方法,因为对于类来说实现监听器并不是一个好主意,但我只是简单地告诉你什么是错误的。