当JTextPane中输入的字符行数超过了JTextPane组件的高度时,需要出现垂直下拉条。
有没有类似JScrollPane那样的方法,如果没有该怎样实现。
JTextPane的使用方法如下:
   styleContext sc = new styleContext();
       DefaultstyledDocument doc = new DefaultstyledDocument(sc);
       JTextPane txaComment = new JTextPane(doc);
       txaComment.setEditable(true);
       txaComment.setBorder(BorderFactory.createLoweredBevelBorder());-=-=-=-=- 以下内容由 123456 在 2006年02月24日 08:21pm ?添加 -=-=-=-=-
我找到了实现方法,只要把它放在JScrollPane中就OK了。
但是,当我在JTable中使用此方法时,可以随着文本内容的增多而出现垂直滚动条,但是滚动条是不能用鼠标拖动的(已就是滚动条不动)。不知道什么原因,JTable使用的方法如下:
       jtable.getColumnModel().getColumn(9).setCellRenderer(new
               TextAreaExCellRender());
   
********************
private class TextAreaExCellRender extends DefaultTableCellRenderer {       styleContext sc = new styleContext();
       final DefaultstyledDocument doc = new DefaultstyledDocument(sc);
       JTextPane jtp = new JTextPane(doc);
       JScrollPane pane1=new JScrollPane(jtp,
                                          JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                          JScrollPane.
                                          HORIZONTAL_SCROLLBAR_NEVER);       final style Heading2style = sc.addstyle("Heading2", null);       public Component getTableCellRendererComponent(JTable table,
               Object value, boolean isSelected, boolean hasFocus, int row,
               int column) {           Heading2style.addAttribute(styleConstants.Alignment,
                                      new Integer(styleConstants.ALIGN_CENTER));
           jtp.setBackground(this.getBackground());
           //jtp.setBorder(BorderFactory.createLoweredBevelBorder());
           //V0.06 06.02.24
           jtp.setFont(new Font("Dialog", Font.PLAIN, 11));
           try {
               doc.remove(0, doc.getLength());
               doc.insertString(0, (String) value, null);           } catch (Exception e) {
           }
           //return jtp;
           return pane1;
       }
   }
*************
jtable是JTable的对象。
注:jtable也是放在JScrollPane中的。
拜托。

解决方案 »

  1.   

    graph.getModel().addGraphModelListener(this);
    setLayout(new BorderLayout());
    JScrollPane scrollPane_log = new JScrollPane(textArea_logOut);//滚动条
    leftSideStatus = new JLabel("");
    rightSideStatus = new JLabel("");
    leftSideStatus.setBorder(BorderFactory.createLoweredBevelBorder());
    rightSideStatus.setBorder(BorderFactory.createLoweredBevelBorder());
    add(leftSideStatus, BorderLayout.NORTH);
    add(scrollPane_log, BorderLayout.CENTER);//增加滚动条
    add(rightSideStatus, BorderLayout.SOUTH);
      

  2.   

    private void init()
        {
            final ImageIcon [] icons = { down, up };
          
            infoJTable = new JTable( );
            this.setViewportView(infoJTable);
            this.setAutoscrolls(true);
            
        }我这样就可以啊 ,你试试好啦
      

  3.   

    class TableJScrollPane extends JScrollPane 
    前面加这个^_^