1 把frame.setSize(760,670);改成 frame.pack();

解决方案 »

  1.   


    To 楼上
    不好意思发错了..extends JFrame是这个
    http://s283.photobucket.com/albums/kk320/wgf4242/Upload/?action=view&current=2010-01-09193241.png&newest=1不管怎么拉窗口,面板表格都是自动扩展到两侧的..不像顶楼的图那样被圈一在一个小范围了.
    pack不行啊..一拉窗口表格大小也不跟着变.
      

  2.   

    再举个例子.JTextField tField = new JTextField(10);
    我直接插入tField,填充整个窗口.setLayout(new GridLayout(3,1));
    此时插入tField,则占1/3屏幕.但是我如果插入panel t,再向t中插入tField,则占一小块地方,10个字符位置.
    我想在t中插入tField也让它像原来那样填充整个t面板怎么做?public class T extends JFrame {    JTextField tField,t2,t3;    public T() {
            tField = new JTextField(10);
            t2 = new JTextField(10);
            setSize(760, 670);
            setLayout(new GridLayout(3,1));
            
            JPanel t = new JPanel();
            t.setLayout(new FlowLayout());
            t.add(tField);
            add(t);
            add(t2);
            setVisible(true);
        }
        public static void main(String[] args) {
            new T();
        }
    }填上代码..
      

  3.   

    你的问题太奇怪了。你有没有在ResultTable中table的大小?
    改变窗口宽度是table跟着变化。
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    DefaultTableModel model = new DefaultTableModel(5 ,5);
    frame.getContentPane().add(new JScrollPane(new JTable(model)),BorderLayout.CENTER);
    JPanel buttonPanel = new JPanel();
    buttonPanel.add(new JButton("Ok"));
    buttonPanel.add(new JButton("Cancel"));
    frame.getContentPane().add(buttonPanel,BorderLayout.SOUTH);
    frame.pack();
    frame.setVisible(true);
      

  4.   

    import javax.swing.*;
    import javax.swing.table.*;
    import java.util.*;
    import java.awt.*;public class T extends JFrame {
    JTextField tField,t2,t3; 

    public T() {
    super("T");
    tField = new JTextField(10);
    t2 = new JTextField(10);
    setSize(760, 670);
    setLayout(new GridLayout(3,1));
    JPanel t = new JPanel();
    t.setLayout(new GridLayout(1,1)); 
    t.add(tField);
    add(t);
    add(t2);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);

    public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable(){
    public void run(){
    new T();
    }
    });
    }
    }
      

  5.   

    我没有在ResultTable有setSize.
    即使用了也没有反应..table的宽度不变化...感觉是被圈起来了一样..
      

  6.   

    3Q.huntort设置成GirdLayout(1,1)..这是关键哪..
      

  7.   

    布局管理器现在基本复杂一点的使用MiGLayout,简单的使用DesignGridLayout
      

  8.   

    再进一步问:
    让panel t填充满JtextField后, 
    t.add(new JButton("new"), BorderLayout.SOUTH); //现在的效果是和JtextField各占面板一半大小
    我想在t面板的底部仅占一个按钮的高度占一行,要怎么做呢?如图..
      

  9.   

    public class AboutDialog extends JDialog { private static final long serialVersionUID = -8953866439352196512L;
    private static AboutDialog wsab;

    public static AboutDialog getInstance(Frame parent){
    if(wsab == null){
    wsab = new AboutDialog(parent);
    }

    return wsab;
    }

    private AboutDialog(Frame parent){
    super(parent,true);
    init(parent);
    }

    protected void init(Frame parent){

    this.setTitle("关于我们");
    this.setSize(540, 290);
    this.setResizable(false);
    this.setLocationRelativeTo(parent);
    this.setLayout(new BorderLayout());

    this.createUP();
    this.createCenter();
    this.createBottom();
    } private void createBottom() {
    JPanel pnlButton = new JPanel();
    JButton btnOK;
    pnlButton.setLayout(new FlowLayout(FlowLayout.RIGHT,12,15));

    btnOK = new JButton("确   定");
    btnOK.addActionListener(new ActionListener(){ @Override
    public void actionPerformed(ActionEvent e) {
    AboutDialog.this.dispose();
    }

    });
    pnlButton.add(btnOK);

    this.add(pnlButton,BorderLayout.SOUTH);
    } private void createCenter() {
    JPanel centerPanel = new JPanel(new GridLayout(1,1, 12, 5));
    centerPanel.setBackground(Color.WHITE);
    centerPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
    this.add(centerPanel);

    Icon icon = new ImageIcon("images/logo.jpg");
    JLabel label = new JLabel(icon, SwingConstants.LEFT);
    centerPanel.add(label);

    } private void createUP() {
    JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 12, 10));
    panel.add(new JLabel("关于我们"));
    this.add(panel, BorderLayout.NORTH);
    }
    }
    这是一个“关于我们”的面板,跟你描述的问题差不多,可能对你有用
      

  10.   

    我这有一个我最近做的你可以看一下
    public class checkresult extends javax.swing.JFrame { /** Creates new form checkresult */
    public checkresult() {
    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();
    jTable1 = new javax.swing.JTable();
    jLabel1 = new javax.swing.JLabel();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
             a, name));
    jScrollPane1.setViewportView(jTable1); jLabel1.setFont(new java.awt.Font("微软雅黑", 3, 36));
    jLabel1.setForeground(new java.awt.Color(0, 0, 204));
    jLabel1.setText("\u673a\u7968\u9884\u8ba2\u8868"); jButton1.setFont(new java.awt.Font("微软雅黑", 3, 24));
    jButton1.setForeground(new java.awt.Color(0, 0, 204));
    jButton1.setText("\u786e\u5b9a");

    jButton2.setForeground(new java.awt.Color(0, 0, 255));
    jButton2.setText("\u663e\u793a\u6570\u636e");

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(
    getContentPane());
    getContentPane().setLayout(layout);
    layout
    .setHorizontalGroup(layout
    .createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING)
    .add(
    layout
    .createSequentialGroup()
    .add(
    layout
    .createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING)
    .add(
    layout
    .createSequentialGroup()
    .add(
    148,
    148,
    148)
    .add(
    jLabel1)
    .addPreferredGap(
    org.jdesktop.layout.LayoutStyle.RELATED)
    .add(
    jButton2))
    .add(
    layout
    .createSequentialGroup()
    .add(
    57,
    57,
    57)
    .add(
    jScrollPane1,
    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
    466,
    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .add(
    layout
    .createSequentialGroup()
    .add(
    236,
    236,
    236)
    .add(
    jButton1)))
    .addContainerGap(120, Short.MAX_VALUE)));
    layout
    .setVerticalGroup(layout
    .createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING)
    .add(
    layout
    .createSequentialGroup()
    .add(
    layout
    .createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING,
    false)
    .add(
    layout
    .createSequentialGroup()
    .addContainerGap()
    .add(
    jLabel1)
    .addPreferredGap(
    org.jdesktop.layout.LayoutStyle.RELATED))
    .add(
    org.jdesktop.layout.GroupLayout.TRAILING,
    layout
    .createSequentialGroup()
    .addContainerGap(
    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
    Short.MAX_VALUE)
    .add(
    jButton2)
    .add(
    17,
    17,
    17)))
    .add(
    jScrollPane1,
    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
    299,
    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(
    org.jdesktop.layout.LayoutStyle.RELATED,
    21, Short.MAX_VALUE).add(
    jButton1).add(27, 27, 27))); pack();
    }//GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private Object[][] a=new Object[][]{{},{},{}}; 
    // End of variables declaration//GEN-END:variables
      
       public static Object name[]=new String[] { "姓名",
    "性别", "工作单位", "身份证号码","旅行时间","旅行目的地" };
    }
      

  11.   

    To yel_hb,
    那个关于我们的JDialog给个调用的类吧..JDialog不太懂.弄了半天没运行起来它..
      

  12.   

    这是一个单例模式,在main方法中写这么一句就行了:AboutDialog.getInstance(null).setVisible(true);
      

  13.   

    你一个帖子要问几个问题?
    才20分,自己研究去吧。
    楼上这个运行什么也不会得。JOptionPane.showMessageDialog(null, "对不起,中国的身份证为15位或18位", "提示", 
    JOptionPane.ERROR_MESSAGE); 这个提示信息的写法,当然还有错误信息等一些写法,由于你只有20分,建议你再发个帖子吧。再有问题不予解决