我在谷歌上看了很多并且遵循了几个例子但是我似乎无法让我的JScrollPane在JPanel中的textarea上工作。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.event.*;
class main
{
public static void main(String Args[])
{
frame f1 = new frame();
}
}
class frame extends JFrame
{
JButton B = new JButton("B");
JButton button = new JButton("A");
JTextArea E = new JTextArea("some lines", 10, 20);
JScrollPane scrollBar = new JScrollPane(E);
JPanel grid = new JPanel ();
frame()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,800);
setTitle("Mobile Phone App");
setLocationRelativeTo(null);
E.setLineWrap(true);
E.setEditable(false);
grid.add(button);
button.addActionListener(new action());
grid.add(B);
B.addActionListener(new action());
//grid.add(E);
grid.getContentPane().add(scrollBar);
add(grid);
setVisible(true);
}
class action implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String V = E.getText();
if(e.getSource() == button)
{
E.setText(V + "A is pressed");
}
if(e.getSource() == B)
{
E.setText(V + "B is pressed");
}
}
}
}
如果有人能看到我出错的地方会很棒。我添加了JscrollPane,其中我添加了文本区域“e”。
答案 0 :(得分:0)
E.setColumns(10);
E.setRows(5);
E.setPreferredSize(new Dimension(10,5)); // delete this
请勿对首选尺寸进行硬编码。首选大小将覆盖您设置行/列的尝试。所以摆脱那条线。
注意,您还可以在创建文本区域时指定行/列:
JTextArea textArea = new JTextArea(5, 10);
提供文本区域的初始大小的提示。现在,文本区域可以在添加或删除文本时更改大小,并在需要时显示滚动条。
还遵循标准的Java命名约定。变量名称不应以大写字符开头。
答案 1 :(得分:0)
对,我明白了!
基本上我不得不以不同的方式添加它...我接近它的方式是错误的!
grid.add(scrollBar, BorderLayout.CENTER);