日期:2014-05-20 浏览次数:20767 次
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));
问题在这里。
一定要要设置大小的话,给滚动视图设置大小,不要给里面的设置。