Java ClipBoard问题

时间:2011-05-02 17:15:28

标签: java swing textarea clipboard

我正在用Java编写动画GUI。我完全被一个元素困住了。我有一个名为InputText的2个JTextAreas,以及使用副本Jbutton将输入复制到输出区域的OutputText。然后我有一个Next和Previous按钮,它应该切换OutputText区域上的帧。我用JLabel作为这两个按钮之间的计数器。

我想要做的是使用剪贴板按住每个“框架”,如果你愿意的话,在我翻阅计数器时输出JTextArea。当我向后翻阅柜台时,还要返回文本。这甚至可能吗?我已经浏览了一些描述剪贴板用法的在线链接,但是我遇到的所有例子都没有给出如何理解这一点的充分理解。

请参阅以下代码:

*注意我遗漏了我已经知道的不重要的元素!谢谢!

这在我的Java文件的顶部调用:

 private Clipboard clipbd = getToolkit().getSystemClipboard();
public static final int MAX_COUNT = 10;
//sets maximum for count
public static final int MIN_COUNT = 1;
//sets minimum for count
private int count = 1;
//sets up integer for counter

在ActionListener中调用它:

public void actionPerformed ( ActionEvent event ) {
boolean status = false;

String OutputText1;

if(event.getSource()== CopyButton){
//get text from InputText
OutputText1 = InputText.getText();
//put text into OutputText field
OutputText.setText(OutputText1);
}//end if for CopyButton

if(event.getSource() == NextButton){
    //LabelOutPut.setText("Next");
    if (count < MAX_COUNT) {
        count++;    
    }//end if
    LabelCounter.setText("" + count);
    OutputText.setText("");

}//end if for NextButton

if(event.getSource() == PreviousButton){
    //LabelOutPut.setText("Previous");
    if(count > MIN_COUNT){
        count--;
    }//end if
    LabelCounter.setText("" + count);


}//end if for PreviousButton

2 个答案:

答案 0 :(得分:5)

为什么要使用剪贴板来保存文本。只需使用String,数据就在程序的控制之下。我认为没有任何理由使您的处理复杂化。

此外,请遵循标准Java命名约定。可变名称不应以较高的字符开头。

LabelCounter ==&gt; labelCounter

答案 1 :(得分:1)

如果您想从程序之外的地方获取复制/粘贴数据,则只需要SystemClipboard。如果你只需要在自己的程序中复制2个位置,并且需要历史记录等...只需在代码中使用变量(字符串,或字符串列表或其他),只需在单击按钮时更新它。 Camickr也提到了同样的事情......