Копия выходного текста JOptionPane

У меня нет опыта JOptionpane но мне нужна простая программа, чтобы упростить мою жизнь. Код, с которым мне нужна помощь, приведен ниже:

public static void main (String[] args) {
    String input = "";

    input = JOptionPane.showInputDialog("Enter code");

    JOptionPane.showMessageDialog(null, toStringU(toArray(input)), "RESULT",
            JOptionPane.INFORMATION_MESSAGE);

}

toStringU метод дает мне длинный длинный текст

Я хочу запустить его без какого-либо компилятора (отдельное приложение, двойной щелчок, ввод информации и получение результатов).

И я не могу скопировать результат с панели вывода, который мне нужно скопировать. Так что либо мне нужно скопировать его и / или я хочу записать его в текстовый файл (второй будет здорово).

1 ответ

Решение

JOptionPane позволяет указать Object в качестве параметра сообщения, если это значение Component какой-то, он будет добавлен к JOptionPane (Strings отображаются с использованием JLabel автоматически)

Установив что-то вроде JTextArea это не редактируется, вы можете воспользоваться его возможностями копирования, не занимая при этом гораздо больше работы...

введите описание изображения здесь

import java.awt.EventQueue;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestOptionPane11 {

    public static void main(String[] args) {
        new TestOptionPane11();
    }

    public TestOptionPane11() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JTextArea ta = new JTextArea(10, 10);
                ta.setText("This is some really long text that is likely to run over "
                        + "the viewable area and require some additional space to render "
                        + "properly, but you should be able to select and copy parts or "
                        + "whole sections of the text as you, but it should remain "
                        + "no editable...");
                ta.setWrapStyleWord(true);
                ta.setLineWrap(true);
                ta.setCaretPosition(0);
                ta.setEditable(false);

                JOptionPane.showMessageDialog(null, new JScrollPane(ta), "RESULT", JOptionPane.INFORMATION_MESSAGE);

            }
        });
    }
}

Дополнительные побочные эффекты

Еще одним побочным эффектом является тот факт, что JTextArea может на самом деле записать его содержимое в Writer для тебя...

FileWriter writer = null;
try {
    writer = new FileWriter("SomeoutputFile.txt", false);
    ta.write(writer);
} catch (IOException exp) {
    exp.printStackTrace();
} finally {
    try {
        writer.close();
    } catch (Exception e) {
    }
}

Что позволяет вам также написать файл...

Другие вопросы по тегам