【问题标题】:Java ClipBoard ProblemJava剪贴板问题
【发布时间】:2011-05-02 17:15:28
【问题描述】:

我正在用 Java 编写一个用于动画的 GUI。我完全被一个元素难住了。我有 2 个称为 InputText 的 JTextAreas 和 OutputText,其中使用复制 Jbutton 将输入复制到输出区域。然后我有一个下一个和上一个按钮,应该在 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

【问题讨论】:

    标签: java swing textarea clipboard


    【解决方案1】:

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

    此外,请遵循标准 Java 命名约定。变量名称不应以大写字符开头。

    标签计数器 ==> 标签计数器

    【讨论】:

    • 啊,我明白了!极好的。我想一个已经盯着这个太久想清楚了!谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多