JFrame编程
最基础的窗口
public test1() { setTitle("test1"); setSize(300,300); //设置窗口大小 setLocation(300,300); //设置窗口的位置 jp = new JPanel(); JButton jb=new JButton("button"); add(jb); //整个窗口可以增加一个按钮 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //正常退出 setVisible(true); //是否显示 }
边界布局管理器
jb1=new JButton("jb1"); add(jb1,BorderLayout.EAST); jb2=new JButton("jb2"); add(jb2,BorderLayout.NORTH); jb3=new JButton("jb3"); add(jb3,BorderLayout.SOUTH); jb4=new JButton("jb4"); add(jb4,BorderLayout.WEST); jb5=new JButton("jb5"); add(jb5,BorderLayout.CENTER);
流式布局管理器
setLayout(new FlowLayout()); //默认居中 //this.setLayout(new FlowLayout(FlowLayout.LEFT)); //左对齐 //this.setLayout(new FlowLayout(FlowLayout.RIGHT)); //右对齐 for(int i=0;i<5;i++) { jb[i]=new JButton(""+i+""); add(jb[i]); } this.setResizable(false); //不可调整窗口大小
网格式布局管理器
this.setLayout(new GridLayout(3,3,15,15)); //主要看行,所有都会被显示,一列可能多也可能少,后面2个参数是横竖的间距 for(int i=0;i<5;i++) { jb[i]=new JButton(""+i+""); add(jb[i]); }
面板
jp = new JPanel(); //新建面板 jp2=new JPanel(); for(int i=0;i<2;i++) { jb[i]=new JButton(""+i+""); jp.add(jb[i]); //面板添加按钮 } for(int i=2;i<5;i++) { jb[i]=new JButton(""+i+""); jp2.add(jb[i]); } this.add(jp,BorderLayout.NORTH); //窗口添加面板 this.add(jp2,BorderLayout.SOUTH);
标签、文本框、密码框
JLabel jl=new JLabel("账号"); JTextField jtf=new JTextField(10); JLabel jl2=new JLabel("密码"); JPasswordField jtf2=new JPasswordField(10);
复选框和单选按钮
jp = new JPanel(); //新建面板 jp2=new JPanel(); JCheckBox[] jcb={null,null,null}; for(int i=0;i<3;i++) { jcb[i]=new JCheckBox(""+i+""); jp.add(jcb[i]); } JRadioButton[] jrb={null,null}; ButtonGroup bg=new ButtonGroup(); for(int i=0;i<2;i++) { jrb[i]=new JRadioButton(""+i+""); } bg.add(jrb[0]); bg.add(jrb[1]); jp2.add(jrb[0]); jp2.add(jrb[1]); add(jp); add(jp2);
下拉列表框和滚动条
this.setLayout(new GridLayout(2,1)); jp = new JPanel(); //新建面板 jp2=new JPanel(); String[] S={"北京","上海","武汉","杭州"}; JComboBox jcmb=new JComboBox(S); for(int i=0;i<4;i++) jcmb.addItem(""+i+""); JList jlist=new JList(S); jlist.setVisibleRowCount(3); JScrollPane jsp=new JScrollPane(jlist); jp.add(jcmb); add(jp); jp2.add(jsp); add(jp2);
拆分窗口和插入图片
JLabel jl=new JLabel(new ImageIcon("Image/龙猫2.jpg")); //插入图片 String[] S={"1","2","3"}; JList jlist=new JList(S); JSplitPane jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jlist,jl); //拆分成两个窗口 jsp.setOneTouchExpandable(true); //有向左向右的小三角 add(jsp);
设置图片
this.setIconImage((new ImageIcon("Image/龙猫2.jpg")).getImage()); //设置图片
一些相关设置的操作
JLabel jl=new JLabel("qq",JLabel.CENTER); //设置标签位置 jl.setFont(new Font("宋体",Font.PLAIN,16)); //设置字体 jl.setForeground(Color.BLUE); //设置颜色 jl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); //移到此处变成手
选项卡
jp.setBackground(Color.BLUE); //面板设置颜色 JTabbedPane jtbp=new JTabbedPane(); //选项卡 jtbp.add("面板1",jp); jtbp.add("面板2",jp2);
菜单和工具条
JMenuBar mb=new JMenuBar(); //菜单条 JMenu jm=new JMenu("中国"); //不是最终的菜单 JMenuItem jmi1=new JMenuItem("汉阳"); JMenuItem jmi2=new JMenuItem("汉口"); JMenuItem jmi=new JMenuItem("北京"); JMenu ej=new JMenu("武汉"); //二级菜单 ej.add(jmi1); ej.add(jmi2); jm.add(jmi); jm.addSeparator(); //设置分隔线 jm.add(ej); JMenu jm2=new JMenu("美国(A)"); jm2.setMnemonic('A'); //按下alt+A可点击该选项,必须单引号 mb.add(jm); //菜单条添加菜单项目 mb.add(jm2); JTextField jtf=new JTextField(); JToolBar tool=new JToolBar(); //工具条 JButton button=new JButton("New"); button.setToolTipText("新建"); //提示信息 tool.add(button); //按钮加入到工具条中 jp.add(mb); jp.add(tool);
表格
Vector ziduan=new Vector(); ziduan.add("编号"); ziduan.add("姓名"); Vector jilu=new Vector(); //集合类 for(int i=0;i<3;i++) { Vector row=new Vector(); row.add(""+i+""); row.add("a"+i+""); jilu.add(row); } JTable ta=new JTable(jilu,ziduan);//JTable是表格,里面的参数是先记录后字段 JScrollPane jsp=new JScrollPane(ta); //滚动条 this.add(jsp);