如何将类似窗口的“控制台”添加到GUI?

时间:2016-04-01 20:02:48

标签: java swing user-interface

我创建了一个GUI。它有几个按钮。我想在它们下面添加一个像对象一样的控制台,我可以在其中编写消息,以便用户可以看到它们。 我应该使用什么元素/对象/类?我希望它能够以不同的方式呈现消息。 这是我创建GUI的代码:

public ssGUI() {
    setLayout(new BorderLayout());

    bRunNoAdj = new JButton("Run no adjustment");
    bRunNoAdj.setVerticalTextPosition(AbstractButton.CENTER);
    bRunNoAdj.setHorizontalTextPosition(AbstractButton.LEADING);
    bRunNoAdj.setMnemonic(KeyEvent.VK_E);
    bRunNoAdj.addActionListener(this);
    bRunNoAdj.setEnabled(false);
    bRunNoAdj.setBackground(Color.white);

    bRunAdj = new JButton("Run adjustment");
    bRunAdj.setVerticalTextPosition(AbstractButton.CENTER);
    bRunAdj.setHorizontalTextPosition(AbstractButton.LEADING);
    bRunAdj.setMnemonic(KeyEvent.VK_E);
    bRunAdj.addActionListener(this);
    bRunAdj.setEnabled(false);
    bRunAdj.setBackground(Color.white);

    bConnect = new JButton("Connect");
    bConnect.setMnemonic(KeyEvent.VK_E);
    bConnect.addActionListener(this);
    bConnect.setEnabled(true);
    bConnect.setBackground(Color.white);

    bDisconnect = new JButton("Disconnect");
    bDisconnect.setMnemonic(KeyEvent.VK_E);
    bDisconnect.addActionListener(this);
    bDisconnect.setEnabled(false);
    bDisconnect.setBackground(Color.white);

    bStationary = new JButton("Show Stationary");
    bStationary.setMnemonic(KeyEvent.VK_E);
    bStationary.addActionListener(this);
    bStationary.setEnabled(false);
    bStationary.setBackground(Color.white);

    bMoving = new JButton("Show Moving");
    bMoving.setMnemonic(KeyEvent.VK_E);
    bMoving.addActionListener(this);
    bMoving.setEnabled(false);
    bMoving.setBackground(Color.white);

    JPanel topPanel = new JPanel();
    topPanel.add(bConnect);
    topPanel.add(bDisconnect);
    add(topPanel, BorderLayout.NORTH);
    JPanel centerPanel = new JPanel();
    centerPanel.add(bRunNoAdj);
    centerPanel.add(bRunAdj);
    add(centerPanel, BorderLayout.CENTER);
    JPanel bottomPanel = new JPanel();
    bottomPanel.add(bStationary);
    bottomPanel.add(bMoving);
    add(bottomPanel, BorderLayout.SOUTH);
}

任何帮助将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:6)

最简单的可能是使用JTextArea。

你当然会阻止用户编辑该区域,这可以这样做:

JTextArea area = new JTextArea();
area.setEditable(false);

如果您希望用户能够滚动该区域,您可以将其添加到JScrollPane,如下所示:

JTextArea area = new JTextArea();
JScrollPane scrollableArea = new JScrollPane(area);

最后,您可以通过执行以下操作向该区域添加一行:

area.setText(area.getText() + "\n" + newLine);

或者最好:

area.append("\n" + newLine);

我希望这会有所帮助:)

答案 1 :(得分:5)

使用JTextArea。在其上调用text_area.setEditable(false);使其成为只读。

答案 2 :(得分:0)

我认为你的意思是JTextArea或JTextField