[英]Java TransferHandler with Jbuttons to update Jbutton Text
我的問題是我如何知道拖放位置的文本是什么。 這是當前的工作代碼。
gameCell.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
JButton button = (JButton)e.getSource();
int currentNumber = Integer.parseInt(button.getText());
TransferHandler handle = button.getTransferHandler();
handle.exportAsDrag(button, e, TransferHandler.COPY);
因此,想法是有一個游戲板,它只是一堆單元(所有JButton)和一個大桌子。 當我將一個單元格拖動到另一個單元格時,被拖動的單元格的值將成為被單擊的單元格的值,因此,因此,在將JButton單元格的原始值復制到被拖動的單元格之前,如何確定它的原始值。
如果您只是想將文本從一個按鈕“復制”到另一個按鈕,則可以使用如下代碼:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DragIcon extends JPanel
{
public DragIcon()
{
TransferHandler iconHandler = new TransferHandler( "icon" );
MouseListener dragListener = new DragMouseAdapter();
JLabel label1 = new JLabel("Label1");
label1.setTransferHandler( iconHandler );
label1.addMouseListener(dragListener);
label1.setIcon( new ImageIcon("copy16.gif") );
JLabel label2 = new JLabel("Label2");
label2.setTransferHandler( iconHandler );
label2.addMouseListener(dragListener);
add( label1 );
add( label2 );
}
private class DragMouseAdapter extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
// handler.exportAsDrag(c, e, TransferHandler.MOVE);
}
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Drag Icon");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DragIcon());
frame.setLocationByPlatform( true );
frame.setSize(200, 100);
frame.setVisible( true );
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
默認的TransferHandler
允許您指定要復制的屬性。 在我的示例中,我正在復制圖標。 在您的情況下,您將使用:
TransferHandler iconHandler = new TransferHandler( "text" );
復制文本。
請注意,在我的示例中,我還嘗試將“圖標”從一個標簽“移動”到另一個標簽,但是它不起作用。 我不確定要更改屬性才能更改什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.