首先,我知道如何在JTextArea中添加滚动条。
JTextArea textarea = new JTextArea();
JScrollPane scrollbar = new JScrollPane(textarea);
但是在下面的JTextArea类代码中
public class MyTextArea extends JTextArea
{
public MyTextArea()
{
setEditable(true);
setSize(500, 500);
//JScrollPane scroll = new JScrollPane(this);
// ...
}
}
如何添加滚动条?我尝试使用JScrollPane,但它没有用。我尝试制作一种新方法,但它也没有用。
这是我的JFrame类。
public class MyFrame extends JFrame
{
MyFrame()
{
setLayout(null);
setTitle("Frame Title");
setSize(600, 600);
MyTextArea mytextarea = new MyTextArea();
add(mytextarea);
setVisible(true);
setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE);
}
}
我的主要。
public static void main(String[] args)
{
new MyFrame();
}
答案 0 :(得分:4)
只需将JTextArea
包裹在JScrollPane
...
add(new JScrollPane(mytextarea));
当组件的内容大于滚动窗格可视区域时,将显示滚动条
您真正需要问的问题是,为什么要延长JTextArea
?请查看Prefer composition over inheritance更多详情
答案 1 :(得分:2)
在您发布的示例中,您没有添加“JTextArea中的滚动条”,而是将JTextArea
添加到JScrollPanel
另外,如果你实际上没有扩展一个类(向它添加新功能),最好创建该类的实例并改为修改它们,但是,如果你这样做,你可以做类似的事情。这样:
public class MyTextArea extends JScrollPanel{
public JTextArea ta = new JTextArea();
public MyTextArea(){
ta.setEditable(true);
ta.setSize(500, 500);
setViewPortView(ta);
}
}