Eclipse WindowBuilder (swing) — некоторые компоненты недоступны в коде?

Изменить - @Heuster связан еще один вопрос, который отвечает на этот вопрос.

Я только что узнал о WindowBuilder и делаю простой чат-клиент, используя его для обучения. Сейчас у меня есть базовый фрейм чата, но в коде доступны только некоторые из добавленных компонентов. В частности, я не могу получить доступ к моему вводу JTextArea, taInput. Есть ли что-то, что мне нужно сделать, чтобы иметь возможность ссылаться на него (чтобы получить текст для отправки и т. д.)?

Вот изображение представления «Дизайн»:

И вот сгенерированный код:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.EmptyBorder;

public class frame extends JFrame
{

    private JPanel contentPane;
    private JButton btnSend;
    private JTextArea taDisplay;

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

    /**
     * Create the frame.
     */
    public frame()
    {
        setResizable(false);
        setTitle("Client");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 440, 316);

        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        JMenu mnFile = new JMenu("File");
        menuBar.add(mnFile);

        JMenuItem mntmConnect = new JMenuItem("Connect...");
        mnFile.add(mntmConnect);

        JMenuItem mntmSaveChatLog = new JMenuItem("Save chat log...");
        mnFile.add(mntmSaveChatLog);

        JMenuItem mntmSettings = new JMenuItem("Settings...");
        mnFile.add(mntmSettings);

        JMenuItem mntmClose = new JMenuItem("Close");
        mnFile.add(mntmClose);

        JMenu mnEdit = new JMenu("Edit");
        menuBar.add(mnEdit);

        JMenu mnView = new JMenu("View");
        menuBar.add(mnView);

        JMenu mnHelp = new JMenu("Help");
        menuBar.add(mnHelp);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.CENTER);
        panel.setLayout(null);

        btnSend = new JButton("Send");
        btnSend.addMouseListener(new MouseAdapter()
        {
            @Override
            public void mouseClicked(MouseEvent arg0)
            {
                taDisplay.append("Send clicked.\n");
            }
        });
        btnSend.setBounds(314, 197, 100, 50);
        panel.add(btnSend);

        taDisplay = new JTextArea();
        taDisplay.setLineWrap(true);
        taDisplay.setEditable(false);
        taDisplay.setBounds(10, 11, 404, 180);
        panel.add(taDisplay);

        JScrollPane spInput = new JScrollPane();
        spInput.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        spInput.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        spInput.setBounds(10, 197, 294, 49);
        panel.add(spInput);

        JTextArea taInput = new JTextArea();
        taInput.setLineWrap(true);
        spInput.setViewportView(taInput);
    }
}

person Weston Odom    schedule 11.04.2013    source источник
comment
возможный дубликат stackoverflow.com/questions/11803107/   -  person Vincent van der Weele    schedule 11.04.2013
comment
@Heuster Вот так, спасибо. Я не нашел этого, когда искал.   -  person Weston Odom    schedule 11.04.2013


Ответы (1)


На вкладке «Дизайн» вы можете щелкнуть правой кнопкой мыши элемент (taInput), затем щелкнуть «Переименовать» в контекстном меню, в диалоговом окне справа от имени там, где 2 кнопки, нажать кнопку (f) (поле), а затем ОК .

введите здесь описание изображения

person Alepac    schedule 11.04.2013