나는이 단축키 또는 드래그 & 드롭를 통해 복사 잘라 붙여 넣기 작업을 할 수 있습니다 TransferHandler
와 JTable
. 나는 JTable's TransferHandler
(예 : canImport()
등)에서 유사한 작업을 호출해야하는 JTable
외부에 3 JButtons
(복사 잘라 내기 붙여 넣기)이 있습니다.외부 JButton에서 JTable 동작을 호출하는 방법?
어떻게하면됩니까? 기본적으로
나는이 단축키 또는 드래그 & 드롭를 통해 복사 잘라 붙여 넣기 작업을 할 수 있습니다 TransferHandler
와 JTable
. 나는 JTable's TransferHandler
(예 : canImport()
등)에서 유사한 작업을 호출해야하는 JTable
외부에 3 JButtons
(복사 잘라 내기 붙여 넣기)이 있습니다.외부 JButton에서 JTable 동작을 호출하는 방법?
어떻게하면됩니까? 기본적으로
모두들 고마워요.하지만 답변을 기다리는 동안 혼자서 답을 찾았습니다.
private void onAction(String actionStr) {
Action action = table.getActionMap().get(actionStr);
ActionEvent newAE = new ActionEvent(table, ActionEvent.ACTION_PERFOMED, actionStr);
action.actionPerfomed(newAE);
}
private void decorateButtons() {
copyButton.addActionListener(new ActionListener() {
public void actionPerfomed(ActionEvent ae) {
onAction("copy");
}
});
cutButton.addActionListener(new ActionListener() {
public void actionPerfomed(ActionEvent ae) {
onAction("cut");
}
});
pasteButton.addActionListener(new ActionListener() {
public void actionPerfomed(ActionEvent ae) {
onAction("paste");
}
});
}
recent question/answer에서와 매우 유사한 방법 : 그 액션의에서 테이블의 복사 동작을 찾을 원본과 그 위임 사용자 지정 작업에 싸서 버튼에 사용자 지정 작업을 사용
table.setDragEnabled(true);
final Action copy = table.getActionMap().get("copy");
Action copyWithButton = new AbstractAction("copy") {
@Override
public void actionPerformed(ActionEvent e) {
copy.actionPerformed(
new ActionEvent(table, e.getID(), e.getActionCommand()));
}
};
frame.add(new JScrollPane(table));
frame.add(new JButton(copyWithButton), BorderLayout.NORTH);
frame.add(new JScrollPane(new JTextArea(5, 20)), BorderLayout.SOUTH);
답장을 보내 주셔서 감사합니다. – SeniorJD
쿨 :-) 15 개 – kleopatra