import javax.swing.*; import javax.swing.plaf.FontUIResource; import java.awt.*; import java.util.Enumeration; public class From { private JPanel From; public static void main(String[] args) { JFrame frame = new JFrame("From"); frame.setContentPane(new From().From); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); //设置窗体大小是否能改变 frame.setResizable(false); //字体设置 InitGlobalFont(new Font("alias", Font.PLAIN, 12)); /******************************/ //窗体设置为全屏 //frame.setExtendedState(JFrame.MAXIMIZED_BOTH); //设置窗体的宽度,高度 frame.setSize(600,500); //指定窗体初始位置x,y(分屏率不同位置发生变化) //frame.setLocation(600, 200); //设置窗口相对于指定组件的位置,null表示居中 frame.setLocationRelativeTo(null); /******************************/ //获取图标路径 Image icon= new ImageIcon("icon/qiaoba.png").getImage(); // //设置图标 frame.setIconImage(icon); //设置标题名 frame.setTitle("MES"); //创建菜单栏条 JMenuBar bar = new JMenuBar(); //创建一个菜单 JMenu menu1 = new JMenu("文件"); JMenu menu2 = new JMenu("查询"); //创建一个 JMenuItem itemConn = new JMenuItem("连接"); //把菜单项添加到菜单 menu1.add(itemConn); //把菜单添加到菜单栏 bar.add(menu1); bar.add(menu2); //把菜单栏添加到窗体 frame.setJMenuBar(bar); //发现把显示放到最后不会出现不现实控件的情况 /******************************/ // /******************************/ frame.setVisible(true); } // 统一设置字体,父界面设置之后,所有由父界面进入的子界面都不需要再次设置字体 private static void InitGlobalFont(Font font) { FontUIResource fontRes = new FontUIResource(font); for (Enumeration<Object> keys = UIManager.getDefaults().keys(); keys.hasMoreElements(); ) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value instanceof FontUIResource) { UIManager.put(key, fontRes); } } } }
框架层次结构
Component类是所有GUI对象的基类。
Jframe容器上面放JPanel。JPanel容器上放控件
在构造函数中初始化控件
import javax.swing.*; public class From extends JFrame{ private JPanel jPanel; private JTextField text1; From(){ init(); } public static void main(String[] args) { JFrame frame = new JFrame("From"); frame.setContentPane(new From().jPanel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setSize(600,500); frame.setLocationRelativeTo(null); frame.setVisible(true); } private void init(){ text1 =new JTextField("abc",10); jPanel.add(text1); } }