Java ClipBoard Проблема - PullRequest
1 голос
/ 02 мая 2011

Я пишу графический интерфейс для анимации на Java.Я полностью озадачен одним элементом.У меня есть 2 JTextAreas, которые называются InputText, и OutputText, где входные данные копируются в область вывода с использованием копии Jbutton.Затем у меня есть кнопка 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 ]

5 голосов
/ 02 мая 2011

Зачем вам использовать буфер обмена для хранения текста. Просто используйте строку, и данные находятся под контролем вашей программы. Я не вижу причин усложнять вашу обработку.

Кроме того, следуйте стандартным соглашениям об именах Java. Имена переменных НЕ должны начинаться с символа в верхнем регистре.

LabelCounter ==> labelCounter

1 голос
/ 02 мая 2011

Вам нужно только SystemClipboard, если вы хотите получить скопированные / вставленные данные из мест вне вашей программы. Если вам просто нужно скопировать 2 места в вашей собственной программе, и вам нужна история и т. Д., Просто используйте переменную в своем коде (строку, или список строк, или что-то еще) и просто обновите ее, когда они нажмут кнопку. Камикр тоже упоминает ...

...