Вот текст файла на 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 ?