JScrollPane在JFrame中有两个面板

时间:2012-12-07 10:22:20

标签: java swing jpanel jscrollpane

我想在我的JTextArea添加一个滚动条,但它只是不会出现。我在论坛上看了很多东西,但都是徒劳的。任何建议都非常感谢。 提前致谢。以下是我的代码。

JPanel pan, pan2;
JTextArea text = new JTextArea();
JTextField fname = new JTextField(18);
JLabel filename = new JLabel("Filename");
JButton view = new JButton("View");
public FileReading() {
    setLayout(new BorderLayout());
    pan = new JPanel();
    pan2 = new JPanel();
    JScrollPane scroll = new JScrollPane(text);
    //scroll.setBounds(400,400,400,400);
    scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    text.setEditable(false);
    scroll.setViewportView(text);
    pan2.add(scroll);
    //scrollpane.setViewportView(text);
    pan2.setLayout(new BorderLayout());
    //pan2.add(scrollpane);
    pan.setLayout(new FlowLayout());
    pan.add(filename, FlowLayout.LEFT);
    pan.add(fname, FlowLayout.CENTER);
    pan.add(view, FlowLayout.RIGHT);
    view.addActionListener(this);
    fname.addActionListener(this);
    pan2.add(text, BorderLayout.CENTER);
    pan2.add(pan, BorderLayout.SOUTH);
    //BorderLayout.EAST
    //add(pan, BorderLayout.SOUTH);
    add(pan2);//, BorderLayout.CENTER
    setVisible(true);
}

public static void main(String args[]) {
    FileReading frame = new FileReading();
    frame.setTitle("Enter The Full Path to the File");
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(400,400,400,400);
    //frame.setSize(400,400);
}

2 个答案:

答案 0 :(得分:1)

您需要将scroll(JScrollPane)添加到pan2而不是text(JTextArea) 试试这个

pan2.add(scroll, BorderLayout.CENTER);

取代pan2.add(text, BorderLayout.CENTER);

修改

当我们在面板中添加JTextArea时,会自动添加

JScrollPane,因为您已在text

中添加了JScrollPane(JTextArea)

这里 - > JScrollPane scroll = new JScrollPane(text);

答案 1 :(得分:0)

可以试试这个

add(scroll);//, BorderLayout.CENTER
add(pan, BorderLayout.SOUTH);

而不是

add(pan2);//, BorderLayout.CENTER

这样我们就可以直接将scrollpane添加到主框架并将其他内容添加到

之下