如何用java语言编写小游戏?(二)

刚才说完了GUI编程的背景,基本介绍了AWT包和Swing包,了解了一下JFrame;类,下面继续说其他类。
JPanel类:在GUI编程中,不建议向窗口中直接添加控件,比日说按钮控件、标签控件、文本框控件等等。所以就出现了容器(JPanel),只需要在容器里添加控件,然后通过将容器添加的方式,添加到窗口上来去实现控件的添加。
下面是JPanel常用的构造器:

  • JPanel(): 创建默认布局(FlowLayout)的面板
  • JPanel(LayoutManager layout) : 以指定的布局管理器创建面板

第一种构造器是无参的,创建容器的时候,容器的默认局部管理器是流式布局。如果想要按坐标定位的方式设置容器中各个控件的位置,要使用参数类型为 LayoutManagerd的有参构造器,若该方法传入null,就可以使用坐标定位法定位每个控件在容器中的位置。
常用方法如下:

  • void setLayout(LayoutManager layout) 以指定布局管理器设置面板的布局

  • Component add(Component comp) 往面板内添加控件

  • void setBackground(Color bg) 设置面板的背景色

    为窗口添加上JPanle容器,如下所示:
    `public class JPanelTest extends JFrame {

    private JPanel jPanel;
    public JPanelTest(){
    //实例化容器时使用空布局(坐标定位法)
    jPanel =new JPanel(null);
    init();
    }

    private void init() {
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle(“窗体的名称”);
    this.setSize(300,200);
    this.setResizable(false);

     //给容器设置背景颜色
     jPanel.setBackground(Color.black);
     //将容器添加到窗体上
     this.add(jPanel);
    

    }

    public static void main(String[] args) {
    new JPanelTest();
    }
    }`
    效果如图6所示:在这里插入图片描述
    常用基本控件

JButton类:用来创建按钮

**构造器:**
JButton()        创建不带文本和图标的按钮
JButton(String txt) 创建带文本的按钮
JButton(Icon icon)     创建带图标的按钮
JButton(String text,Icon icon)  创建带文本和图标的按钮

``常用方法

	String getText()      获得按钮上的文本
	void  setBackground(Color c)   设置按钮的背景色
	void setVisible(boolean b)     设置按钮是否可见,参数b决定
	 void setToolTipText(String text)    设置按钮的悬停提示信息
void setIcon(Icon defaultIcon)   设置按钮的默认图标(继承自AbstractButton类)
	void setText(String text)  设置按钮上的文本

JLable类:用来在窗体上显示标签,它既可以显示文本,也可以显示图像

构造器作用
JLabel()创建不带文本和图标的标签
JLabel(String text)以指定文本创建标签
-JLabel(Icon icon)--以指定图标创建标签-
方法作用
void setText(String text)设置标签上的文本
String getText()获得标签上的文本
-void setIcon(Icon icon)--设置标签上的图标-
Icon getIcon()获得标签上的图标

注意:JLabel只能显示文本和图标信息,用户不能对其修改

JTextField类:允许用户编辑单行文本

构造器作用
JTextField()创建一个空的文本框
JTextField(int columns)创建一个指定列数的空文本框 (此方法只有流式布局才有用)
-JTextField(String text)--创建一个指定初始文本的文本框-
JTextField(String text,int columns )创建一个指定初始化文本和列数的文本框
常用方法作用
void setText(String text)设置文本框的文本,由text指定
String getText()获得文本框的文本
-void setHorizontalAlignment(int aligment)--设置文本框中文本的水平对齐方式:-

水平对齐方式包括:JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT。

JPasswordField类:允许编辑单行文本,像我们输入密码一般,不显示输入的字符,具体使用方式大致和JTextFieldx相同

下面来实现一个登录效果:

public class LoginText extends JFrame {

    //容器
    private JPanel jPanel;
    //标签控件
    private JLabel title;
    private JLabel username;
    private JLabel userpassword;

    //输入用户名的文本框控件
    private JTextField  textUsername;
    //输入密码的密码框控件
    private JPasswordField pwdUser;

    //登录和退出按钮控件
    private JButton btnLogin;
    private JButton btnQuit;

    public LoginText(){
        //实例化容器和控件
        jPanel =new JPanel(null);
        title =new JLabel("用户登录");
        username =new JLabel("用户姓名");
        userpassword =new JLabel("用户密码");
        textUsername =new JTextField();
        pwdUser =new JPasswordField();
        btnLogin =new JButton("登录");
        btnQuit =new JButton("退出");

        init();
    }

    private void init() {
        //设置窗口的各个属性
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("登录窗口");
        this.setSize(300,200);
        this.setResizable(false);


        //设置各个控件的位置和坐标
        //方法:setBounds()的前两个参数代表控件的左上角坐标,后两个参数为控件的宽和高
        title.setBounds(100,10,100,30);
        username.setBounds(20,60,75,25);
        userpassword.setBounds(20,100,75,25);
        textUsername.setBounds(100,60,120,25);
        pwdUser.setBounds(100,100,120,25);
        btnLogin.setBounds(50,140,75,25);
        btnQuit.setBounds(150,140,75,25);
        //将容器和所有控件加入窗体中
        this.add(title);
        this.add(username);
        this.add(userpassword);
        this.add(textUsername);
        this.add(pwdUser);
        this.add(btnLogin);
        this.add(btnQuit);
        this.add(jPanel);

        this.setVisible(true);
    }

    public static void main(String[] args) {
        new LoginText();
    }
}

在这里插入图片描述
感觉有点手生了,我多练一会儿咳咳…

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月夜空之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值