我有一个BorderLayout
的Java程序,到目前为止工作正常。
我想在下面添加一个JTextArea
,以便在点击运行按钮后显示输出。
有人可以向我展示一个实现我想做的最好方法的例子吗?
我应该定义一个GridLayout
的2X1,我的BorderLayout
位于顶部,然后是我的JTextArea
吗?
我愿意接受建议......
这是我到目前为止所拥有的图像:
在这下面 - 我希望有一个文本区域,一旦我点击运行按钮就会捕获输出。
答案 0 :(得分:1)
如果我明白了,你想在点击运行按钮时在整个事物的下面添加一个TextArea。
我建议使用2个面板。把你已经拥有的所有内容放在一个Panel中(这个面板将有borderLayout),然后在另一个面板下面放置,当你点击Run按钮时,你可以通过编程方式添加JtextArea。
修改强>
类似的东西:
Window
|
|--- Panel (borderLayout)
| | --- (things you already have)
|
|--- Panel 2
| ---- (JTextArea, added later by code)
答案 1 :(得分:1)
使用border layout
。
将您现有的GUI添加到panel
,并将其添加到center
的{{1}}和frame
TextArea
上的south
。< / p>
代码段:
border layout
答案 2 :(得分:1)
正如我在评论中所述......这样的事情是什么:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class Ironmantis extends JFrame{
JTextArea textArea = new JTextArea();
JPanel upperPanel = new JPanel();
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,upperPanel,new JScrollPane(textArea));
public Ironmantis(){
textArea.setEditable(false);
textArea.append("Operating system: "+System.getProperty("os.name")+"\n");
textArea.append("Operating System version: " +System.getProperty("os.version")+"\n");
textArea.append("Operating system architecture: "+ System.getProperty("os.arch")+"\n");
textArea.append("Java version: "+ System.getProperty("java.version")+"\n");
textArea.append("Java vendor: "+ System.getProperty("java.vendor")+"\n");
textArea.append("Java vendor URL: "+ System.getProperty("java.vendor.url")+"\n");
upperPanel.setPreferredSize(new Dimension(800,400));
upperPanel.setBackground(Color.CYAN);
splitPane.setPreferredSize(new Dimension(800,600));
add(splitPane);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Ironmantis i = new Ironmantis();
i.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
i.pack();
i.setVisible(true);
}
});
}
}
通过在JPanel
添加JTextArea
和JSplitPane
,您的JTextArea
将成为某种控制台的角色,如果我理解正确,那么你的问题。