перетаскиваемый JPanel продолжает редактировать обратно в центр при редактировании - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть JPanel с текстовым полем (textPanel). По некоторым причинам я добавил textPanel в другую панель (contentPanel), а в JFrame. Я добавил MouseListener в textPanel, чтобы я мог его перетаскивать. Новая позиция устанавливается с помощью метода call setLocation (...) Каждый раз, когда я начинаю редактировать текстовое поле, текстовая панель возвращается из своего фактического местоположения в центр JFrame. - Почему? Что я должен изменить?

public void run() {       
    area1 = new JTextArea();
    area1.setText("Hello!");

    GridBagLayout layout = new GridBagLayout();
    GridBagConstraints cc = new GridBagConstraints();
    cc.fill = GridBagConstraints.NONE;       
    textPanel = new JPanel(layout);

    cc.anchor = GridBagConstraints.PAGE_START;
    cc.gridx = 0;   
    textPanel.add(area1, cc);

    JPanel contentPanel = new JPanel(new GridBagLayout());
    cc = new GridBagConstraints();
    cc.anchor = GridBagConstraints.FIRST_LINE_START;
    cc.gridx = 0; 
    cc.gridy = 0;
    cc.weightx = 1;
    cc.weighty = 1;

    MyMouseAdapter mh = new MyMouseAdapter();    
    textPanel.addMouseListener(mh);
    textPanel.addMouseMotionListener(mh);

    contentPanel.add(textPanel, cc);

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    frame.add(contentPanel);
    frame.setSize(800, 600);

    frame.setVisible(true);
}
...