Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOptionPane输出文本副本_Java_Swing_Text_Output_Joptionpane - Fatal编程技术网

Java JOptionPane输出文本副本

Java JOptionPane输出文本副本,java,swing,text,output,joptionpane,Java,Swing,Text,Output,Joptionpane,我没有使用JOptionpane的经验,但我需要一个简单的程序来简化我的生活。 我需要帮助的代码如下: public static void main (String[] args) { String input = ""; input = JOptionPane.showInputDialog("Enter code"); JOptionPane.showMessageDialog(null, toStringU(toArray(input)), "RESULT",

我没有使用
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
方法给了我一个很长的文本

我想在没有任何编译器的情况下运行它(一个独立的应用程序,双击,输入信息和获取结果)


我不能从输出面板复制结果,我需要复制。因此,要么我需要复制它,要么我想将它写入一个txt文件(第二个就好了)。

JOptionPane
允许您指定一个
对象
作为消息参数,如果该值是某种
组件
,它将被添加到
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) {
    }
}

它还允许您编写文件…

发生这种情况时您是否在意(即写入/复制)?是的,我需要复制输出文本,我需要它在没有编译器的情况下工作,但什么时候?我可以在显示
JOptionPane
之前或之后进行复制…你在意吗?我不完全理解,我想,但顺序应该是窗格->输入输出->窗格。你的问题没有完全意义。你有一些输入(来自用户),这将产生一些输出。您将在屏幕上显示这些内容。您知道要“复制”(可能是复制到剪贴板上)和/或将其写入文件。您关心最后两个操作何时发生吗?我想在显示之前进行复制/写入会更好…这正是我所需要的。非常感谢。不客气。许多人似乎忽视了
JOptionPane
;)的这一小功能遗憾的是,它们似乎不是一种简单的方法。@jamie在做什么?@jamie不能涵盖所有用例/可能性;)