(我是java btw的新手)
我有这个未完成的程序,我想在jscrollpane
添加jtextarea
。但是,我无法让它发挥作用。我试过了
add(new JScollPane(area));
哪个不起作用。我试过了:
panel.add(new JScrollPane(area));
那也没有用。我也尝试过:
area.add(pane);
和
area.add(new JScrollPane());
但没有任何作用。救命!!!看看
public class Constructor extends JFrame {
private static final long serialVersionUID = 123456789L;
JScrollPane scroll;
public JPanel panel;
static JTextField field;
static JTextArea area;
String displayCommand, commandIs;
public Constructor() {
panel = new JPanel();
panel.setLayout(getLayout());
panel.setSize(600, 450);
scroll = new JScrollPane(area);
scroll.setBounds(0, 0, 10, 395);
field = new JTextField();
field.setSize(595, 25);
field.setLocation(0, 400);
field.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
showCommand(event.getActionCommand());
field.setText("");
}
}
);
area = new JTextArea();
area.setSize(595,395);
area.setLocation(0,0);
area.setEditable(false);
area.setFont(new Font("Lucida Console", Font.BOLD, 13));
area.setText("Welcome to JConsole! This Application is for executing commands."
+ "\nType help for more info");
panel.add(new JScrollPane(area));
panel.add(area);
panel.add(field);
add(panel);
}
这只是我的构造函数,代码中的任何其他内容都不涉及jscrollpane
。
答案 0 :(得分:0)
您添加了area
两次。第一个是JScrollPane,第二个没有JScrollPane。你应该删除第二部分。
panel.add(new JScrollPane(area));
//panel.add(area); Remove this part.
同时确保area
的正确布局。默认情况下,JPanel
为FlowLayout
,但对于JTextArea
,它应位于BorderLayout
,且中心对齐。
答案 1 :(得分:0)
您可以尝试添加此
scroll.setViewportView(area);