Копия выходного текста 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
(String
s отображаются с использованием 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) {
}
}
Что позволяет вам также написать файл...