我有一個框架,其中包含一個按鈕和一個文本字段。我寫了一個傳輸處理程序,所以我可以放入文件。但是,當我在框架上設置傳輸處理程序時,只有按鈕接受放置。swing - setTransferHandler整個框架
我有的解決方法是爲面板的所有組件設置傳輸處理程序。
什麼是正確的方法來做到這一點?
JPanel panel = new JPanel();
flowPanel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
JTextField textField = new JTextField();
textField.setMaximumSize(new Dimension(4000, 30));
JButton button = new JButton("Button");
button.setHorizontalAlignment(SwingConstants.LEFT);
TransferHandler newHandler = new TransferHandler() {
public boolean canImport(TransferHandler.TransferSupport info) {
return true;
}
};
// downs't work - only the button accepts a drop
panel.setTransferHandler(newHandler);
// A workaround - does what I want
textField.setTransferHandler(newHandler);
button.setTransferHandler(newHandler);
panel.add(button);
panel.add(textField);
'解決方法我已經是設置傳輸處理程序panel.'的所有組件 - 似乎是合理的我。您無法將KeyListener添加到面板並使其適用於面板上的所有文本字段。 – camickr
那麼,在我的情況下,我只有一個文本字段,無論如何,我的處理程序知道該怎麼做......我將相同的處理程序添加到所有組件,並且它工作正常。 如果它不適用於JFrame。爲什麼可以添加它? – ModdyFire