重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
设置居中:
成都创新互联专注于龙游网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供龙游营销型网站建设,龙游网站制作、龙游网页设计、龙游网站官网定制、小程序制作服务,打造龙游网络公司原创品牌,更为您提供龙游网站排名全网营销落地服务。
在你的Frame类构造函数中setLocationRelativeTo(null);
104、105行代码:
ExaminationResult是你自己的一个类吧,如果我没猜错一个是个Frame。
105行的show()不用太在意,已经过时了。
现在用setVisible(true);
你的“学生管理”窗口那个Frame里是不是
setDefaultCloseOption(EXIT_ON_CLOSE);?
因为是EXIT,所以整个程序都会退出。
改为
setDefaultCloseOption(DISPOSE_ON_CLOSE);
就只会关闭窗口。
窗口字体是啥意思?窗口标题的字体是系统字体。
其他文字是组件的字体,有对应的setFont()方法。
比如
JButton btn = new JButton();
btn.setFont(new Font(/*参数*/));
具体参数查查文档吧,学Java就是要多查文档。
//这个是构造方法
public MyFrame(){
setSize(200, 300);
setTitle("JLabel Demo");
//下面的代码就是控制窗口居中显示的代码
Toolkit tk = Toolkit.getDefaultToolkit();
setLocation((tk.getScreenSize().height - this.HEIGHT)/2,
(tk.getScreenSize().width - this.WIDTH)/2);
//主代码。。
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
JPanel 放入到BorderLayout.CENTER , 那么会自动填充满整个contentPane的中间, 而JPanel内部还是流式布局, 一行排满 自动换到下一行,从上到下. 所以按钮还是在最上面.
(把JPanel的背景色改成蓝色,就可以清晰的看到JPanel填满了窗口)
解决办法:
方法一: [绝对布局],通过设置panel 为绝对布局,然后设置按钮的宽高和位置
参考代码
import javax.swing.*;
public class JFDemo1 extends JFrame{
public JFDemo1() {
JPanel panel=new JPanel();
panel.setLayout(null);//设置为空布局.或者叫绝对布局
JButton messageButton = new JButton("OK");
JButton closeButton = new JButton("Cancel");
panel.add(messageButton);
panel.add(closeButton);
//粗略的指定下位置,如果要精确的位置,需要进行计算
closeButton.setSize(80, 30);// 指定宽高
closeButton.setLocation(160, 75);//指定位置
messageButton.setBounds(80, 75, 60,30);// 同时指定宽高和位置
add(panel);//默认位置就是BorderLayout.CENTER
setTitle("Demo");// 标题
setSize(320, 230);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new JFDemo1().setVisible(true);
}
}
方法二:[盒布局]
import javax.swing.*;
public class JFDemo2 extends JFrame{
public JFDemo2() {
JPanel pane=new JPanel();
BoxLayout layout=new BoxLayout(pane, BoxLayout.X_AXIS);// 水平的盒布局
pane.setLayout(layout);
JButton messageButton = new JButton("OK");
JButton closeButton = new JButton("Cancel");
pane.add(Box.createGlue()); // 挤占ok按钮和窗口左侧空间
pane.add(messageButton);
pane.add(Box.createHorizontalStrut(20));// 按钮之间的水平距离
pane.add(closeButton);
pane.add(Box.createGlue()); // 挤占cancel按钮和窗口右侧空间
add(pane);
setTitle("Demo");// 标题
setSize(320, 230);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new JFDemo2().setVisible(true);
}
}
总结: 推荐使用方法二,使用盒布局来实现.
一般不推荐使用绝对布局/空布局 来布局窗口, 因为不同的操作系统下显示的效果不完全一致.
并且还需要写大量的代码来计算组件的大小和位置, 当窗口放大和缩小时 还需要重新计算位置