日期:2014-05-20 浏览次数:20976 次
ReceivejPanel = new JPanel();
AnchorLayout ReceivejPanelLayout = new AnchorLayout(); getContentPane().add(ReceivejPanel, BorderLayout.NORTH); ReceivejPanel.setLayout(ReceivejPanelLayout); ReceivejPanel.setPreferredSize(new java.awt.Dimension(492, 173));
{
ReceivejLabel = new JLabel();
ReceivejPanel.add(ReceivejLabel, new AnchorConstraint(26, 208, 135, 1, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
AnchorLayout ReceivejLabelLayout = new AnchorLayout();
ReceivejLabel.setLayout(ReceivejLabelLayout);
ReceivejLabel.setText("\u63a5\u6536\u6d88\u606f\u7a97\u53e3");
ReceivejLabel.setFont(new java.awt.Font("KaiTi_GB2312",3,16));
ReceivejLabel.setForeground(new java.awt.Color(0,255,255));
ReceivejLabel.setPreferredSize(new java.awt.Dimension(102, 19));
}
{
ReceivejScrollPane = new JScrollPane();
ReceivejPanel.add(ReceivejScrollPane, new AnchorConstraint(170, 1001, 997, 1, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
ReceivejScrollPane.setPreferredSize(new java.awt.Dimension(492, 143));
{
ReceivejTextArea = new TextAreacvp(); ReceivejScrollPane.getViewport().add(ReceivejTextArea,null);
ReceivejTextArea.setPreferredSize(new java.awt.Dimension(474, 141));
ReceivejTextArea.setEditable(false);
ReceivejTextArea.setBackground(new java.awt.Color(192,192,192));
ReceivejTextArea.setForeground(new java.awt.Color(0,0,255));
ReceivejTextArea.setLineWrap(true);
}
}
ReceivejScrollPane.getViewport().add(ReceivejTextArea,null);
------解决方案--------------------
两个的位置大小设置成一样的,还有把JScollPanel设置成是水平滚动的还是垂直滚动的.
------解决方案--------------------
我是用一个线程,固定时间间隔将光标挪到文本末尾实现滚动的
TimerTask task = new TimerTask() { // 实现结果自动滚屏
@Override
public void run() {
resultArea.setSelectionStart(resultArea.getText().length());
}
};
Timer timer = new Timer();
timer.schedule(task, 0, 1000);
------解决方案--------------------
应该改成:ReceivejScrollPane.getViewport().add(ReceivejTextArea);试试。以前我也是这么写的没出现过楼主的问题。如果不行的话,我在想想
------解决方案--------------------
定义的变量首字母最好小写,这样不容易阅读。楼主之前是弄C++的?
------解决方案--------------------
ReceivejScrollPane = new JScrollPane();
ReceivejScrollPane.getViewport().add(ReceivejTextArea);
这样就可以了
------解决方案--------------------
很简单,在每次添加完文本后调用:
JScrollBar bar = ReceivejScrollPane.getVerticalScrollBar();
bar.setValue(bar.getMaximum());
楼主试试看.
------解决方案--------------------
学习
------解决方案--------------------
唉~~你这些代码是使用可视化工具生成的吧~~可以说,垃圾代码非常之多……很乱
ReceivejTextArea.setPreferredSize(new java.awt.Dimension(474, 141));
问题在这里。
一定要要设置大小的话,给滚动视图设置大小,不要给里面的设置。