各位大神,我最近在帮办公室写程序。我现在遇到一个难题,是我有一个窗体,里面用表格输出我得到的数据结果。
但是,表格的大小无法随着窗体的变化而变化。我现在想要解决这个问题,也就是:点窗体的最大化之后,窗体JFrame变大,同时,JTable也变大,我不知道怎么实现,跪求各位大神帮忙啊!JavaJTableJFrameSwing
但是,表格的大小无法随着窗体的变化而变化。我现在想要解决这个问题,也就是:点窗体的最大化之后,窗体JFrame变大,同时,JTable也变大,我不知道怎么实现,跪求各位大神帮忙啊!JavaJTableJFrameSwing
* CheckActypeResult.java
*
* Created on __DATE__, __TIME__
*/package forms;import javax.swing.table.DefaultTableModel;/**
*
* @author __USER__
*/
public class CheckActypeResult extends javax.swing.JFrame { /** Creates new form CheckActypeResult */
public CheckActypeResult() {
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.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); String[] heads = {"页数","机型校对情况"};
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData,heads)
{
public boolean isCellEditable(int row,int column)
{
return false;
}
};
jTable1 = new javax.swing.JTable(model);
jScrollPane1.setViewportView(jTable1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 400,
Short.MAX_VALUE).addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addGap(0, 0,
Short.MAX_VALUE).addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 375,
javax.swing.GroupLayout.PREFERRED_SIZE).addGap(
0, 0, Short.MAX_VALUE))));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 300,
Short.MAX_VALUE).addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addGap(0, 0,
Short.MAX_VALUE).addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 275,
javax.swing.GroupLayout.PREFERRED_SIZE).addGap(
0, 0, Short.MAX_VALUE)))); pack();
}// </editor-fold>
//GEN-END:initComponents /**
* @param args the command line arguments
*/
public void addRow(String[] output)
{
DefaultTableModel model = (DefaultTableModel) this.jTable1.getModel();
model.addRow(output);
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables}
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 400,
Short.MAX_VALUE).addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addGap(0, 0,
Short.MAX_VALUE).addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 375,
javax.swing.GroupLayout.PREFERRED_SIZE).addGap(
0, 0, Short.MAX_VALUE))));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 300,
Short.MAX_VALUE).addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup().addGap(0, 0,
Short.MAX_VALUE).addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 275,
javax.swing.GroupLayout.PREFERRED_SIZE).addGap(
0, 0, Short.MAX_VALUE))));从你的代码看,你是把jscrollpane的大小定死了。
方法:继承ComponentAdapter类或者实现ComponentListener接口,在componentResized方法中重新设置jscrollpane的大小,然后调用validate(),repaint()方法
重载getPerferenceSize()