Опять проблемы со скроллированием
От: abcdijkl  
Дата: 10.09.08 08:48
Оценка:
Вот текст файла на Java:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTable;
import java.awt.Rectangle;
import javax.swing.table.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import java.text.*;
import javax.swing.JScrollPane;
import java.awt.Color;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.border.BevelBorder;
import javax.swing.JLabel;
import java.awt.Font;

public class BoundsofO_C extends JFrame {

    private static final long serialVersionUID = 1L;

    private JPanel jContentPane = null;

    private JTable jTable = null;
    
    //public Object[][] data = {{" ", " ", " ", " "}, {" ", " ", " ", " "}, {" ", " ", " ", " "}};
    //public Object[] columnnames = {"Измерение", "Значение \u03C3", "Границы", ""};
    
    public Object[][] data3 = {{""},{""},{""},{""},{""},{""}};
    public Object[] columnnames3 = {""};
    public DefaultTableModel myTM3 = new DefaultTableModel(data3, columnnames3);
    
    public Object[][] data4 = {{""},{""},{""},{""},{""},{""}};
    public Object[] columnnames4 = {""};
    public DefaultTableModel myTM4 = new DefaultTableModel(data4, columnnames4);

    public Object[][] data5 = {{"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}, {"", ""}};
    public Object[] columnnames5 = {"", ""};
    public DefaultTableModel myTM5 = new DefaultTableModel(data5, columnnames5);
    
    public Dimension prSize = new Dimension(0,0);
    
    private JTable jTable1 = null;

    private DefaultTableCellRenderer defaultTableCellRenderer1 = null;

    private JPanel jPanel = null;

    private JPanel jPanel1 = null;

    private JPanel jPanel2 = null;

    private JTable jTable2 = null;

    private JLabel jLabel = null;

    private JLabel jLabel1 = null;

    private JLabel jLabel2 = null;

    private JScrollPane jScrollPane = null;

    private JPanel jPanel3 = null;

    private JTable jTable3 = null;

    private JTable jTable4 = null;

    private JTable jTable5 = null;

    /**
     * This is the default constructor
     */
    public BoundsofO_C() {
        super();
        initialize();
    }

    /**
     * This method initializes this
     * 
     * @return void
     */
    private void initialize() {
        this.setSize(512, 90);
        this.setResizable(true);
        this.setContentPane(getJContentPane());
        this.setTitle("Границы разброса");
        this.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent e) {
                //System.out.println("componentResized()"); // TODO Auto-generated Event stub componentResized()
                Dimension dim = BoundsofO_C.this.getSize();
                if (dim.height < 90) {
                    dim.height = 90;
                    BoundsofO_C.this.setSize(dim);
                }
                if (dim.height > 154) {
                    dim.height = 154;
                    BoundsofO_C.this.setSize(dim);
                }
                jScrollPane.setBounds(0, 17, dim.width - 3, dim.height - 58);
                jPanel3.repaint();
                jTable3.repaint();
                jTable4.repaint();
                jTable5.repaint();
                jScrollPane.repaint();
            }
        });
    }

    /**
     * This method initializes jContentPane
     * 
     * @return javax.swing.JPanel
     */
    private JPanel getJContentPane() {
        if (jContentPane == null) {
            jContentPane = new JPanel();
            jContentPane.setLayout(null);
            jContentPane.add(getJPanel(), null);
            jContentPane.add(getJPanel1(), null);
            jContentPane.add(getJPanel2(), null);
            //jContentPane.add(getJTable2(), null);
            jContentPane.add(getJScrollPane(), null);
        }
        return jContentPane;
    }

    /**
     * This method initializes jPanel    
     *     
     * @return javax.swing.JPanel    
     */
    private JPanel getJPanel() {
        if (jPanel == null) {
            jLabel = new JLabel();
            jLabel.setBounds(new Rectangle(15, 1, 84, 14));
            jLabel.setFont(new Font("Dialog", Font.BOLD, 11));
            jLabel.setText("Измерение");
            jPanel = new JPanel();
            jPanel.setLayout(null);
            jPanel.setBounds(new Rectangle(0, 0, 107, 17));
            jPanel.setBackground(new Color(125, 190, 255));
            jPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
            jPanel.add(jLabel, null);
            jPanel.add(getJScrollPane(), null);
        }
        return jPanel;
    }

    /**
     * This method initializes jPanel1    
     *     
     * @return javax.swing.JPanel    
     */
    private JPanel getJPanel1() {
        if (jPanel1 == null) {
            jLabel1 = new JLabel();
            jLabel1.setBounds(new Rectangle(19, 1, 76, 13));
            jLabel1.setFont(new Font("Dialog", Font.BOLD, 11));
            jLabel1.setText("Значение \u03C3");
            jPanel1 = new JPanel();
            jPanel1.setLayout(null);
            jPanel1.setBounds(new Rectangle(108, 0, 105, 17));
            jPanel1.setBackground(new Color(125, 190, 255));
            jPanel1.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
            jPanel1.add(jLabel1, null);
        }
        return jPanel1;
    }

    /**
     * This method initializes jPanel2    
     *     
     * @return javax.swing.JPanel    
     */
    private JPanel getJPanel2() {
        if (jPanel2 == null) {
            jLabel2 = new JLabel();
            jLabel2.setBounds(new Rectangle(90, 1, 110, 12));
            jLabel2.setFont(new Font("Dialog", Font.BOLD, 11));
            jLabel2.setText("Границы  разброса");
            jPanel2 = new JPanel();
            jPanel2.setLayout(null);
            jPanel2.setBounds(new Rectangle(214, 0, 290, 17));
            jPanel2.setBackground(new Color(125, 190, 255));
            jPanel2.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
            jPanel2.add(jLabel2, null);
        }
        return jPanel2;
    }

    /**
     * This method initializes jScrollPane    
     *     
     * @return javax.swing.JScrollPane    
     */
    private JScrollPane getJScrollPane() {
        if (jScrollPane == null) {
            jScrollPane = new JScrollPane();
            jScrollPane.setBounds(new Rectangle(0, 17, 502, 32));
            jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            //jScrollPane.setViewportView(getJTable2());
            jScrollPane.setViewportView(getJPanel3());
            //jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
            jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        }
        return jScrollPane;
    }

    /**
     * This method initializes jPanel3    
     *     
     * @return javax.swing.JPanel    
     */
    private JPanel getJPanel3() {
        if (jPanel3 == null) {
            jPanel3 = new JPanel();
            jPanel3.setLayout(null);
            jPanel3.add(getJTable3(), null);
            jPanel3.add(getJTable4(), null);
            jPanel3.add(getJTable5(), null);
            //jPanel3.setBounds(0, 0, 502, 98);
        }
        return jPanel3;
    }

    /**
     * This method initializes jTable3    
     *     
     * @return javax.swing.JTable    
     */
    private JTable getJTable3() {
        if (jTable3 == null) {
            //DefaultTableModel myTM = new DefaultTableModel();
            jTable3 = new JTable(myTM3);
            myTM3.setRowCount(6);
            myTM3.setColumnCount(1);
            //jTable3.setBounds(new Rectangle(0, 2, 105, 27));
            prSize.width = 105;
            prSize.height = 96;
            jTable3.setPreferredSize(prSize);
            jTable3.setBounds(0, 2, 105, 96);
        }
        return jTable3;
    }

    /**
     * This method initializes jTable4    
     *     
     * @return javax.swing.JTable    
     */
    private JTable getJTable4() {
        if (jTable4 == null) {
            //DefaultTableModel myTM = new DefaultTableModel();
            jTable4 = new JTable(myTM4);
            myTM4.setRowCount(6);
            myTM4.setColumnCount(1);
            //jTable4.setBounds(new Rectangle(108, 1, 103, 27));
            prSize.width = 103;
            prSize.height = 96;
            jTable4.setPreferredSize(prSize);
            jTable4.setBounds(108, 2, 103, 96);
        }
        return jTable4;
    }

    /**
     * This method initializes jTable5    
     *     
     * @return javax.swing.JTable    
     */
    private JTable getJTable5() {
        if (jTable5 == null) {
            //DefaultTableModel myTM = new DefaultTableModel();
            jTable5 = new JTable(myTM5);
            myTM5.setRowCount(6);
            myTM5.setColumnCount(2);
            //jTable5.setBounds(new Rectangle(214, 0, 285, 27));
            prSize.width = 285;
            prSize.height = 96;
            jTable5.setPreferredSize(prSize);
            jTable5.setBounds(214, 2, 285, 96);
        }
        return jTable5;
    }
}  //  @jve:decl-index=0:visual-constraint="13,10"


На contentPane помещён jScrollPane, внутрь которого помещена панель jPanel3, на которую помещены таблицы jTable3, jTable4 и jTable5. При этом эти таблицы имеют по шесть строк каждая (предполагается, что на одну строку таблицы приходится 16 пикселей).
Проблема состоит в том, что при выводе этой формы на экран не происходит скроллирования таблиц при нажатии курсора мыши на вертикальный скроллбар. Что мне надо сделать, чтобы решить эту проблему?
И как мне сделать так, чтобы это всё работало, когда у вертикального скроллбара scrollbarpolicy было бы VERTICAL_SCROLLBAR_AS_NEEDED ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.