我有如下代码,
package com.sunshine.setup;import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import com.sunshine.sunsdk.sql.*; //公共类库
import com.sunshine.sunsdk.system.*;
import com.sunshine.sunsdk.swing.*;
import com.sunshine.mainframe.HotelFrame; //加载主窗口
public class Setup 
extends JDialog 
implements ActionListener, MouseListener {

private JLabel top,bott;
private JTabbedPane tp;
private JPanel panelMain;
//=========房间项目设置
private JTable tb11, tb12;
private DefaultTableModel dtm11, dtm12; //房间类型列表//房间信息列表
 
private JScrollPane sp11,sp12;
private JComboBox cb11,cb12;
    //房间类型,可供/清理状态
private JButton bt11, bt12, bt13, bt14, bt15, bt16, bt17, bt18, bt19, bt20;
      //添加, 修改,删除LX,折扣,单个,批量添加,删除,修改FJ,保存,筛选
private JTextField tf11;
//=========客户类型设置
private JTable tb21,tb22;
private DefaultTableModel dtm21,dtm22;
         //客户类型列表,房间费打折列表
private JScrollPane sp21,sp22;
private JButton bt21, bt22, bt23, bt24;
      //添加, 修改,删除LX,房费打折
//=========操作员设置
private JTable tb31;
private DefaultTableModel dtm31;
//操作员列表
private JScrollPane sp31;
private JComboBox cb31;//用户名
private JPasswordField tf31, tf32, tf33;
      //原密码,新密码,确认密码
private JRadioButton rb31,   rb32,   rb33,   rb34,   rb35;
//新用户登记, 修改密码,删除用户,普通用户,管理员
private JButton bt31, bt32, bt33;
       // 登记, 修改, 删除
//=========计费设置
private JTextField tf41, tf42, tf43, tf44, tf45, tf46, tf47; 
private JCheckBox ck;
private JButton bt41, bt42;

//提示信息
String msg0 = "您确定要删除在表格中选中的资料条目吗?";
String msg1 = "请在相应的表格中选定条目,再点删除键 ...";
//日志信息
String journal;
//INI文件中的键名
String ini[] = { "[SOFTINFO]", "UserName", "CompName", "[CONFIG]", "Soft_First",
 "Default_Link" , "Default_Page", "Sys_style", "[NUMBER]",
 "LodgName", "LodgNumber", "EngaName", "EngaNumber", "ChouName", 
 "ChouNumber", "[HABITUS]", "Ck_Habitus", "Ck_Minute", "[PARTTIME]", 
 "In_Room", "Out_Room1", "Out_Room2", "InsuDay", "ClockRoom1", 
 "ClockRoom2", "InsuHour1", "InsuHour2", "[JDBC]", "DBFname", 
 "UserID", "Password", "IP", "Access", "[ODBC]", "LinkName" };

//实例化功能模块
//========================================================================//
AddRoomType art  = new AddRoomType (this); //添加房间类型
ModiRoomType mrt  = new ModiRoomType(this); //添加房间类型
AddCustomerType act  = new AddCustomerType(this);  //添加客户类型
ModiCustomerType mct  = new ModiCustomerType(this); //添加客户类型
Discount dis  = new Discount(this); //折扣设置
AddRoomInfo  ari  = new AddRoomInfo(this); //单个添加房间
AddRoomInfos aris = new AddRoomInfos(this); //批量添加房间
ModiRoomInfo mri  = new ModiRoomInfo(this); //修改房间信息
//========================================================================//

/**=======================================================================**
 * [## public Setup(JFrame frame) {} ]:  构造函数
 * 参数   :JDialog对象表示本对话框的父窗口
 * 返回值 :无
 * 修饰符 :public
 * 功能   :组建系统设置模块
 **=======================================================================**
 */
public Setup(JFrame frame) {
super (frame, "系统设置", true);
top = new JLabel(); //假空格
panelMain = new JPanel(new BorderLayout(0,10));
tab(); //制作系统设置项目标签面板
addListener(); //加入事件监听
panelMain.add("North",top);
panelMain.add("Center",tp);
this.setContentPane(panelMain);
this.setPreferredSize (new Dimension (718,508));
this.setMinimumSize (new Dimension (718,508));
this.setResizable(false); //不允许改变窗口大小
pack();
sunswing.setWindowCenter(this); //窗口屏幕居中
}
编译时,this.setPreferredSize (new Dimension (718,508));
this.setMinimumSize (new Dimension (718,508));
报错,说是不认识的函数。
我主要用于控制窗口的大小,如果用this.setsize,没有反应,窗口不是我想要的大小,是怎么回事?
我该怎么来控制窗口的大小?

解决方案 »

  1.   

    错误 应该不是那两句的~   那两句没有错误
    你试着用下 IDE吧  这样好代码好调整些~  把枝叶的代码去掉 看看关键影响的代码在哪
    dialog的大小 可以用setSize来控制~  
      

  2.   

    错误 应该不是那两句的~  那两句没有错误 
    你试着用下 IDE吧  这样好代码好调整些~  把枝叶的代码去掉 看看关键影响的代码在哪 
    dialog的大小 可以用setSize来控制~  -------------------------------------------
    我试了,在jb2005下编译的。
    我用setsize来控制,结果没有任何变化
      

  3.   

    晕哦~~
    代码不全,运行不了,无法更多地了解你的问题,我去掉了一些没用的,还报了运行时的空指针。
    那就看着代码说几句吧。
    setPrefrerredSize 这个方法通常在使用布局管理器的情况下使用,,一些布局管理器会优先考虑控件的尺寸,例如grilayout。这时使用setSize不起作用。而当使用绝对布局的时候,也就是setLayout(null);的时候要使用setSize方法,setPrefrerredSize 不起作用。你这个继承自jdialog,应该是一个对话框。若你想改变尺寸,则使用setSize()方法,不要使用setPrefrerredSize 。你的问题我没有办法具体运行得到,这些算是我的一点建议吧。
    既然你要使你的窗口不可改变大小,你又何必设置minimumSize呢?