Java Swing - копирование / вставка не работает в Java Web Start - PullRequest
2 голосов
/ 10 января 2012

Я создал текстовое поле в 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?

Ответы [ 2 ]

4 голосов
/ 11 января 2012

Причину измененного поведения можно найти в Копировать в изолированном приложении. в 1.6.0_24 + . Исправление ошибки безопасности распространяется как на апплеты, так и на приложения JWS.

Решение (снова изложенное в связанном потоке) заключается в использовании взамен ClipboardService API JNLP. Вот демоверсия . услуги буфера обмена .

0 голосов
/ 10 апреля 2019

Это мой ответ копия из текстового поля в другое

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("\u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B5\u03B9\u03C3\u03AC\u03B3\u03B5\u03C4\u03B5 \u03C4\u03BF \u03CC\u03BD\u03BF\u03BC\u03AC \u03C3\u03B1\u03C2");
        NewLabel_1.setBounds(10, 11, 191, 14);
        frame.getContentPane().add(NewLabel_1);

        JLabel NewLabel_2 = new JLabel("\u03A4\u03BF \u03CC\u03BD\u03BF\u03BC\u03AC \u03BC\u03BF\u03C5 \u03B5\u03AF\u03BD\u03B1\u03B9");
        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);
    }
}
...