【发布时间】:2012-12-01 01:37:26
【问题描述】:
我有一个包含自定义对象的 ArrayList 的 JList,我正在尝试创建拖放到字段中的操作。我无法理解如何在 Transferable 中打包和接收对象。
这是我所知道的:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
public class FlightProjectInterface extends JFrame{
//create GUI Objects
private JFrame primaryFrame;
private JPanel createFlightPanel;
private JPanel aircraftLayout;
private JList personsJList, personsOnFlightJList;
private JTextField pilotLabel, coPilotLabel, backseat1Label, backseat2Label;
public FlightProjectInterface(){
//establish frame
super("Create Flight");
setLayout( new FlowLayout());
//aircraftPanel
aircraftLayout = new JPanel();
aircraftLayout.setLayout(new GridLayout(2,2));
pilotLabel = new JTextField("Drag Pilot Here");
//build person load list
DefaultListModel listModel = new DefaultListModel();
for (Person person : Database.persons)
listModel.addElement(person);
personsJList = new JList(listModel);
personsJList.setVisibleRowCount(5);
personsJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
personsJList.setDragEnabled(true);
add( new JScrollPane(personsJList) );
aircraftLayout.add(pilotLabel);
add(aircraftLayout);
}//end constructor
}
澄清:我无法从 JList 中选择对象并从中创建 Transferable。使用上面的代码,对象的 toString 表示只是简单地粘贴在文本字段中,因此我无法从放置的位置提取对象数据。如何“打包”对象本身并将其放入可以从 GUI 引用对象本身的占位符?
理想情况下,应该有 4 个字段,每个字段都包含一个可以删除的对象。如果他们被删除,该人将从列表中删除,但如果被替换,则返回到列表中。
【问题讨论】:
-
“我无法理解如何在 Transferable 中打包和接收对象。” 请参阅Drag and Drop and Data Transfer 并在您尝试过后再联系我们可以提出具体问题。
-
我已经读了几个小时了。我无法从 JList 中选择对象并从中创建可转移对象。使用上面的代码,对象的 toString 表示只是简单地粘贴在文本字段中,因此我无法从放置的位置获取对象数据。
-
cannot find symbol symbol: variable Database location: class FlightProjectInterface- 为了尽快获得更好的帮助,请发布SSCCE。
标签: java swing drag-and-drop jlabel jlist