如图所示,要做出这样的效果:
首先分析大致框架为:
1、首先所以要创建一个窗体对象
//创建窗体
JFrame jFrame=new MyFrame();//在这里就可以用JFrame的子类MyFrame来进行实例化
2、然后创建两个面板
//创建一个面板
JPanel jPanel = new JPanel();//使用ctrl+1可以快速补充变量声明
//创建另外一个面板,
JPanel jPanel2 = new JPanel();
3、创建按钮组件
//创建一个按钮,并添加到面板中
JButton jButton = new JButton();
4、最后记得将组件添加到面板里、将面板添加到窗体中
//将面板组件添加到窗体中
jFrame.add(jPanel);
jPanel2.add(jButton);
jFrame.add(jPanel2);
5、最后一定要设置窗体是可见的
//end设置窗体可见,放到最后
jFrame.setVisible(true);
6、其他的就是设置窗体和面板的标题、显示位置大小、是否可以改变大小、设置窗体的图标、设置窗体关闭的动作。
setTitle();//设置标题的方法
setBounds();//设置显示位置及大小
setResizable();//是否可以改变大小
setImageIcon();//设置窗体的图标
setDefaultCloseOperation();//设置窗体关闭的动作
代码:
package com.hp.java;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SwingTest {
//测试JFrame窗体的创建
public static void main(String[] args) {
//使用JFrame类创建窗体--》创建JFrame类的对象
//JFrame()/JFrame(String title)
//创建窗体
JFrame jFrame=new MyFrame();//在这里就可以用JFrame的子类MyFrame来进行实例化
/**
* 希望完善的地方:
* 设置窗体的大小、设置窗体的标题、设置窗体的图标、设置窗体关闭时的动作、在设置好窗体的大小之后不可以改变
*/
//1、设置窗体的显示位置及大小
jFrame.setBounds(100, 300, 500, 500);//这时候你发现这个窗体可以拖拽、并且改变宽度和高度
//2、设置窗体的标题
jFrame.setTitle("Swing测试");
//3、设置窗体的图标 (当查询一个类时,可以用ctrl+shift+T;当查询类中的方法时,可以用ctrl+O)
//new ImageIcon()实例化,不能用Image,因为Image是一个抽象类。getIamge()返回的类型为Image
jFrame.setIconImage(new ImageIcon("img/logo.png").getImage());
//4、设置窗体关闭的动作
jFrame.setDefaultCloseOperation(3);//3代表JFrame.EXIT_ON_CLOSE
//5、在设置好窗体的大小之后不可以改变
jFrame.setResizable(false);
//创建一个面板
JPanel jPanel = new JPanel();//使用ctrl+1可以快速补充变量声明
jPanel.setBackground(Color.blue);
jPanel.setBounds(0, 0, 500, 300);
/**
* 如果没有下面这两句代码,上边的一句代码无法实现。
*/
jFrame.setLayout(null);
jPanel.setLayout(null);
//将面板组件添加到窗体中
jFrame.add(jPanel);
//创建另外一个面板,
JPanel jPanel2 = new JPanel();
jPanel2.setBounds(0, 300, 500, 200);
//创建一个按钮,并添加到面板中
JButton jButton = new JButton();
jButton.setText("按钮");
jPanel2.add(jButton);
jFrame.add(jPanel2);
//end设置窗体可见,放到最后
jFrame.setVisible(true);
}
}
class MyFrame extends JFrame{
}
class MyPanel extends JPanel{
}