我正在用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
答案 0 :(得分:5)
为什么要使用剪贴板来保存文本。只需使用String,数据就在程序的控制之下。我认为没有任何理由使您的处理复杂化。
此外,请遵循标准Java命名约定。可变名称不应以较高的字符开头。
LabelCounter ==&gt; labelCounter
答案 1 :(得分:1)
如果您想从程序之外的地方获取复制/粘贴数据,则只需要SystemClipboard
。如果你只需要在自己的程序中复制2个位置,并且需要历史记录等...只需在代码中使用变量(字符串,或字符串列表或其他),只需在单击按钮时更新它。 Camickr也提到了同样的事情......