我正在尝试创建一个汽车 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 的位置。您需要:
- 让您的类实现 ListSelectionListener
- vehicleList.addListSelectionListener( this );
查看 How to Write a List Selection Listener 上的 Swing 教程一个工作示例。教程示例是一种更好的方法,因为对于类来说实现监听器并不是一个好主意,但我只是让您快速了解问题所在。
关于java - 通过单击列表上的项目填充文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853528/