做个登入界面,现在想把panel1设置小点,由于swing学的不好,请高手指教,对即给分!我用setsize(int,int)没用.
package client;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;import javax.swing.*;
public class MainFrame extends JFrame{

int locationX = 400;
int locationY = 250;
int length=450;
int width=250;

public MainFrame(){
design();
}
public void design(){

setTitle("用户主界面");
    setLocation(locationX, locationY);
setSize(length, width);
this.setLayout(new GridLayout(2, 1,0,0));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//===================================================================菜单设置
JMenuItem checkInMenu=new JMenuItem("上机");
JMenuItem checkOutMenu=new JMenuItem("下机");  
JMenu useMenu=new JMenu("使用");
useMenu.add(checkInMenu);
useMenu.add(checkOutMenu);


JMenu helpMenu=new JMenu("帮助"); 
JMenuItem starTimeMenu=new JMenuItem("上机时间");
JMenuItem systemMenu=new JMenuItem("系统信息");
JMenuItem serverMenu=new JMenuItem("餐饮服务");
helpMenu.add(starTimeMenu);
helpMenu.add(systemMenu);
helpMenu.addSeparator();
helpMenu.add(serverMenu);

JMenu quitMenu=new JMenu("退出");
JMenuItem exitMenu=new JMenuItem("Exit");
quitMenu.add(exitMenu);

JMenuBar menuBar=new JMenuBar();
menuBar.add(useMenu);
menuBar.add(helpMenu);
menuBar.add(quitMenu);



JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
this.add(panel1);
this.add(panel2);
panel1.setLayout(new FlowLayout(FlowLayout.LEFT));

panel1.add(menuBar);
    panel2.setBackground(Color.blue);
//==========================================================================================


}


public static void main(String[] args) {
MainFrame myframe = new MainFrame();
}}

解决方案 »

  1.   

    没问题的啊,在我机器上运行是正常的啊
    修改大小的是修改
    int length=450; 
    int width=250;
    这两个值就OK
      

  2.   

    package client;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;import javax.swing.*;
    public class MainFrame extends JFrame{int locationX = 400;
    int locationY = 250;
    int length=450;
    int width=250;public MainFrame(){
    design();
    setVisible(true);
    }
    public void design(){
    setTitle("mainframe");
        setLocation(locationX, locationY);
    setSize(length, width);
    //this.setLayout(new GridLayout(2, 1,0,0));setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//===================================================================菜单设置
    JMenuItem checkInMenu=new JMenuItem("上机");
    JMenuItem checkOutMenu=new JMenuItem("下机"); 
    JMenu useMenu=new JMenu("使用");
    useMenu.add(checkInMenu);
    useMenu.add(checkOutMenu);
    JMenu helpMenu=new JMenu("帮助"); 
    JMenuItem starTimeMenu=new JMenuItem("上机时间");
    JMenuItem systemMenu=new JMenuItem("系统信息");
    JMenuItem serverMenu=new JMenuItem("餐饮服务");
    helpMenu.add(starTimeMenu);
    helpMenu.add(systemMenu);
    helpMenu.addSeparator();
    helpMenu.add(serverMenu);JMenu quitMenu=new JMenu("quit");
    JMenuItem exitMenu=new JMenuItem("Exit");
    quitMenu.add(exitMenu);JMenuBar menuBar=new JMenuBar();
    menuBar.add(useMenu);
    menuBar.add(helpMenu);
    menuBar.add(quitMenu);JPanel panel1=new JPanel();
    JPanel panel2=new JPanel();
    //panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
    //panel1.add(menuBar);
    panel2.setBackground(Color.blue);
    this.setJMenuBar(menuBar);
    this.getContentPane().add(panel2);
    //this.add(panel1);
    //this.add(panel2);
    //==========================================================================================
    }
    public static void main(String[] args) {
    MainFrame myframe = new MainFrame();
    }}
    =============================================================================
    改了一下,不知道你是不是想要这效果.在setVisiable()前要把组件加进去.
    也可以在加组件后使用updateUI()方法更新frame.
    还有一个就上JFrame本来就是有JMenuBar的空间的.