在一个Panel上,怎样通过把2个JTextPane放在JScrollPane上,只显示一个滚动条,拖动该滚动条能让两个JTextPane内容一起滚动?要new一个JScrollPane还是两个?(最好能给出部分代码)

解决方案 »

  1.   

    供参考import java.awt.Color;
    import java.awt.GradientPaint;
    import java.awt.Graphics2D;/*
     * SyncScrollTest.java
     *
     * Created on 2005年5月31日, 下午2:58
     */
    public class SyncScrollTest extends javax.swing.JFrame {
        
        /** Creates new form SyncScrollTest */
        public SyncScrollTest() {
            initComponents();
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
        private void initComponents() {
            jScrollPane1 = new javax.swing.JScrollPane();
            jPanel1 = new javax.swing.JPanel() {
             protected void paintComponent(java.awt.Graphics g) {
             Graphics2D g2d = (Graphics2D) g;
             GradientPaint gp = new GradientPaint(0, 0, Color.white, 0, getHeight(), Color.blue);
             g2d.setPaint(gp);
             g2d.fillRect(0, 0, getWidth(), getHeight());
             }
            };
            jScrollPane2 = new javax.swing.JScrollPane();
            jPanel2 = new javax.swing.JPanel() {
             protected void paintComponent(java.awt.Graphics g) {
             Graphics2D g2d = (Graphics2D) g;
             GradientPaint gp = new GradientPaint(0, 0, Color.white, 0, getHeight(), Color.red);
             g2d.setPaint(gp);
             g2d.fillRect(0, 0, getWidth(), getHeight());
             }
            };
            jScrollBar1 = new javax.swing.JScrollBar();
            
            //*****************************************************************
            jScrollPane1.getVerticalScrollBar().setModel(jScrollBar1.getModel());
            jScrollPane2.getVerticalScrollBar().setModel(jScrollBar1.getModel());
            //*****************************************************************        getContentPane().setLayout(null);        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    //        jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
            jPanel1.setPreferredSize(new java.awt.Dimension(500, 2000));
            jScrollPane1.setViewportView(jPanel1);        getContentPane().add(jScrollPane1);
            jScrollPane1.setBounds(30, 40, 200, 300);//        jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
            jPanel2.setPreferredSize(new java.awt.Dimension(500, 2000));
            jScrollPane2.setViewportView(jPanel2);        getContentPane().add(jScrollPane2);
            jScrollPane2.setBounds(270, 40, 200, 300);        getContentPane().add(jScrollBar1);
            jScrollBar1.setBounds(510, 40, 16, 300);        setSize(600, 400);
            setLocationRelativeTo(null);
        }
        // </editor-fold>//GEN-END:initComponents
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new SyncScrollTest().setVisible(true);
                }
            });
        }
        
        // Variables declaration - do not modify//GEN-BEGIN:variables
        private javax.swing.JPanel jPanel1;
        private javax.swing.JPanel jPanel2;
        private javax.swing.JScrollBar jScrollBar1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JScrollPane jScrollPane2;
        // End of variables declaration//GEN-END:variables
        
    }
      

  2.   

    收到!
    顺便问个上例中问题,为什么渐变色是平滑的,看不到颜色的分歧(由浅入深的)?为什么是一个panel上看不到颜色有上深下浅的?
      

  3.   

    这个颜色就是从白色渐变到蓝色和红色呀,所以就这种效果,如果从深红渐变到浅红的话应该就是上深下浅了吧        jPanel1 = new javax.swing.JPanel() {
             protected void paintComponent(java.awt.Graphics g) {
             Graphics2D g2d = (Graphics2D) g;
             GradientPaint gp = new GradientPaint(0, 0, Color.blue.darker(), 0, getHeight(), Color.blue.brighter());
             g2d.setPaint(gp);
             g2d.fillRect(0, 0, getWidth(), getHeight());
             }
            };
            jScrollPane2 = new javax.swing.JScrollPane();
            jPanel2 = new javax.swing.JPanel() {
             protected void paintComponent(java.awt.Graphics g) {
             Graphics2D g2d = (Graphics2D) g;
             GradientPaint gp = new GradientPaint(0, 0, Color.red.darker(), 0, getHeight(), Color.red.brighter());
             g2d.setPaint(gp);
             g2d.fillRect(0, 0, getWidth(), getHeight());
             }
            };
      

  4.   

    有问题的!
    如果左右两个text不一样长,出现闪屏,滚动条不好用!!!!