我有一个包含自定义对象的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); …
Run Code Online (Sandbox Code Playgroud) 当我尝试在 MS Access 中查看 ODBC 表时,收到错误“十进制值缩放导致数据截断”。我知道返回错误的字段,并且 Access 在查询时能够识别该字段,但我无法查看结果(#Error
记录)并且错误不断出现。
我尝试过CDbl()
但没有运气。ANz()
甚至不允许运行查询。
源数据库是 Oracle,通过适用于 Microsoft Windows x64 的数据库客户端 11g 第 2 版连接。该字段由数据字典定义,Number
长度为22
。设计视图显示字段 a 的Decimal
精度为13
,但小数位数为 2。
我猜测 的规模2
导致了这个错误。我通过 MS Access 链接该表。无论如何,我是否可以通过访问 Access 和 ODBC 来解决这个问题,或者是否需要在 Oracle 中解决这个问题?
我正在将自定义对象拖放到JLabel中,并且能够在传输过程中引用该对象(将标签String更改为接收到的对象toString),但不确定如何在JLabel中实际存储自定义对象或构建参考.
在转移过程中实现这一目标的最佳方法是什么?
这是接收对象并使用它来设置文本的工作传输代码(非常感谢以前的答案:这里:
public boolean importData(TransferSupport support) {
boolean accept = false;
if (canImport(support)) {
try {
Transferable t = support.getTransferable();
Object value = t.getTransferData(PersonTransferable.PERSON_FLAVOR);
if (value instanceof Person) {
Component component = support.getComponent();
if (component instanceof JLabel) {
((JLabel)component).setText(((Person)value).toString());
//action here
}
}
} catch (Exception exp) {
exp.printStackTrace();
}
}
return accept;
}
Run Code Online (Sandbox Code Playgroud)
JLabel具有我想要存储它们的特定实例变量.由于我有组件(JLabel)和值(自定义对象),我可以建立此链接吗?
最糟糕的情况是,我只需要为每个标签构建一个TransferHandler 并准确引用该值.这可能是最好的做法吗?