Java Swing - 在Java Web Start中,复制/粘贴不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Swing - 在Java Web Start中,复制/粘贴不起作用相关的知识,希望对你有一定的参考价值。

我在Java Swing中创建了一个文本域

txtSessionID = new JTextField();
txtSessionID.setText("enter here");
txtSessionID.setBounds(6, 22, 438, 28);
frame.getContentPane().add(txtSessionID);

当我尝试将某些内容复制到文本字段时,如果我在桌面上运行jar,那么它可以工作,但如果我使用Java Web Start启动它则不行。

问题:

为什么会这样?如何让CCP在JWS表单中工作?

答案

行为改变的原因可以在Copy in sand-boxed app. in 1.6.0_24+找到。安全错误修复适用于applet和JWS应用程序。

解决方案(在链接线程中再次概述)是使用JNLP API的ClipboardService。这是一个demo. of the ClipboardService

另一答案

这是我从textfield到另一个的答案副本

public class GuiFrame1 {

    private JFrame frame;

    private JTextField textField_1;
    private JTextField textField_2;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GuiFrame1 window = new GuiFrame1();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public GuiFrame1() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel NewLabel_1 = new JLabel("u03A0u03B1u03C1u03B1u03BAu03B1u03BBu03CE u03B5u03B9u03C3u03ACu03B3u03B5u03C4u03B5 u03C4u03BF u03CCu03BDu03BFu03BCu03AC u03C3u03B1u03C2");
        NewLabel_1.setBounds(10, 11, 191, 14);
        frame.getContentPane().add(NewLabel_1);

        JLabel NewLabel_2 = new JLabel("u03A4u03BF u03CCu03BDu03BFu03BCu03AC u03BCu03BFu03C5 u03B5u03AFu03BDu03B1u03B9");
        NewLabel_2.setBounds(10, 63, 191, 14);
        frame.getContentPane().add(NewLabel_2);

        textField_1 = new JTextField();
        textField_1.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent arg0) {
            //  System.out.println(arg0.getKeyCode());
                if(arg0.getKeyCode()==10) {
                    String name = textField_1.getText();
                    textField_2.setText(name);
                }
            }
        });

        textField_1.setBounds(228, 8, 119, 20);
        frame.getContentPane().add(textField_1);
        textField_1.setColumns(10);

        textField_2 = new JTextField();
        textField_2.setBounds(228, 60, 119, 20);
        frame.getContentPane().add(textField_2);
        textField_2.setColumns(10);
    }
}

以上是关于Java Swing - 在Java Web Start中,复制/粘贴不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Redhat 8.4 Java Swing web -- 组件不可见,但确实存在

用Java画线

将 Swing 应用程序转换为 Java EE

java游戏开发之JRadioButton

java中怎样让swing倒入jsp网页中

好程序员Java教程解读什么是swing