public class MainFrame extends JFrame{
public  MainFrame(){ //设置主窗口标题
super("RussiaDiamond game");
setLocation(100,100);
//主窗口布局管理器
setLayout(new BorderLayout());
//设置主菜单
JMenuBar mb = new JMenuBar();
//菜单项
JMenu m1 = new JMenu("文件");
//子项
JMenuItem mi_1 = new JMenuItem("新游戏");
m1.add(mi_1);
//加横线
m1.addSeparator();
JMenuItem mi_1_2 = new JMenuItem("退出");
m1.add(mi_1_2);
//将菜单项加入主菜单
mb.add(m1);
//设置菜单项
JMenu m2 = new JMenu("帮助");
//子项
JMenu m2_1 = new JMenu("关于");
//子项
JMenuItem mi_2 = new JMenuItem("作者");
m2_1.add(mi_2);
//将子项加入菜单项
m2.add(m2_1);
mb.add(m2);
//新建一个Panel用于容纳主菜单
JPanel pane1 = new JPanel();
//设置菜单布局管理器
pane1.setLayout(new BorderLayout());
pane1.add(mb,BorderLayout.WEST);
//将panel加入frame
getContentPane().add(pane1,BorderLayout.NORTH);
JPanel pane2 = new JPanel();
Canvas myCanvas = new Canvas();
myCanvas.setSize(250,500);
myCanvas.setBackground(Color.white);
pane2.add(myCanvas);
getContentPane().add(pane2,BorderLayout.CENTER);
//设置窗口最小尺寸
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e){
int width = e.getComponent().getWidth();
int height = e.getComponent().getHeight();
if(width<250){
width = 250;
}
if(height<500){
height = 500;
}
setSize(width,height);
}
});

mi_1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//开始游戏
}
});

mi_1_2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0); //退出游戏
}
});

mi_2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//显示关于信息
}
});

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});



}在设置窗口最小尺寸的时候,如何实现鼠标拖拽缩小到规定的最小值后再拖拽就不会缩小,而不是可以拖拽小于最小值然后松开鼠标窗口弹回设置的最小值如何在显示关于信息时加入一个弹出窗口,并且弹出窗口弹出时始终是在主窗口中间

解决方案 »

  1.   

     frame.setMinimumSize(new Dimension(400,300))
      

  2.   

    我试过加一个dialog,但是还是在屏幕左上角出现的啊·怎么能让它在主窗口中间出现呢
      

  3.   

    sou de si ni...
    很基础的问题啊
      

  4.   

    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    loginFrame.setLocation((int) (screen.getWidth() - loginFrame.getWidth()) / 2, (int) (screen.getHeight() - loginFrame.getHeight()) / 2);
      

  5.   


    mi_2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(frame, "help"); // frame是MainFrame的引用
         }
    });