我有一個JList包含自定義對象的ArrayList,我試圖創建一個拖放到字段。我無法理解如何在Transferable中打包和接收對象。從JList拖放自定義對象到JLabel
這是關於據我已經得到了:
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中的對象選擇和創建可轉讓出來。使用上面的代碼,對象的toString表示只是簡單地粘貼到文本字段中,所以我無法從丟棄的位置提取對象數據。我如何「包裝」對象本身並將其放入可以從GUI引用對象本身的佔位符中?
理想情況下,會有4個字段,每個字段都包含可以被刪除的對象。如果這個人被丟棄,這個人將被從列表中刪除,但如果被替換,則會返回到列表中。
*「我無法理解如何在Transferable中打包和接收對象。」*請參閱[拖放和數據傳輸](http://docs.oracle.com/javase/tutorial /uiswing/dnd/index.html),當您嘗試並可以提出具體問題時,請回到我們這裏。 –
我一直在讀它幾個小時。我無法從JList中選擇對象並創建一個可移植的對象。使用上面的代碼,對象的toString表示只是簡單地粘貼在文本字段中,所以我無法從放置的位置獲取對象數據。 –
'無法找到符號 符號:變量數據庫 位置:類FlightProjectInterface' - 爲了更好地幫助更快,發佈[SSCCE](http://sscce.org/)。 –