GUI图形用户界面(Swing窗体)---课堂笔记(附源码)

Swing窗体(JFrame)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

小问题

​ 之前学过Awt包,继承Frame类的那个窗体,有个很大的问题是,它不行正常的显示中文在控件上,这就很难受。经过学习,我发现Swing窗体是没有这个问题的,当然也可能是我电脑的问题。

Swing&AWT功能

  • 界面设计
    • 窗体、控件、面板、布局管理
    • 事件处理机制

Swing&AWT区别

  • 两个是图形界面包
  • AWT做图形,使用本地操系统方法,图像界面与本地操作系统一致
  • Swing做图形,使用自己的方法,与平台无关。
  • 使用Swing方式

一、Swing概述

1、完成第一个窗体

  • 使用java.swing包
  • 借用JFrame类
    • 继承
  • 设计窗体
    • 设置窗体大小
    • 设置标题
    • 设置关闭窗体按钮
    • 设置窗体显示
import javax.swing.*;
public class JFrameTextRun {
   
    public static void main(String[] args) {
   
        new JFrameText();
    }
}
class JFrameText extends JFrame{
   
    public JFrameText(){
   
        init();
    }
    public void init(){
   
        setTitle("啦啦啦窗口标题");
        setBounds(500,500,400,300);
//        setSize(400,300); //大小 //同上
//        setLocation(500,500);//启动方位
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认的关闭方式
        setVisible(true);//窗口是否可见
    }
}

运行结果

在这里插入图片描述

2、向窗体添加控件

  • 继承窗体
  • 添加自己的控件
    • 做为窗体的成员属性
    • 设置控件的属性

2.1、JTextField方法:

方法 说明
JTextField() 构造新的文本输入框
JTextField(String text) 构造一个新的文本输入框,以指定文本作为初始文本
getColumns() 返回文本字段中的列数
setColumns(int columns) 设置最多可显示内容的列数
setHorizontalAlignment(int value) 设置文本字段中文本的水平对齐方式:JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
import javax.swing.*;

public class JFrameTextRunA{
   
    public static void main(String[] args) {
   
        new JFrameTextA();
    }
}
class JFrameTextA extends JFrame{
   
    public JFrameTextA(){
   
        init();
    }
    public void init(){
   
        setTitle("啦啦啦窗口标题");
        setBounds(500,500,400,300);
//        setSize(400,300); //大小 //同上
//        setLocation(500,500);//启动方位
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认的关闭方式
        setVisible(true);//窗口是否可见
        setResizable(false);
//------------------------------------------------------------------------
//2、向窗体添加控件
// 2.1、JTextField方法:
        JTextField JTF1 = new JTextField();//构造新的文本输入框
        JTextField JTF2 = new JTextField("啦啦啦文本输入框",1);//构造一个新的文本输入框,以指定文本作为初始文本
        JTextField JTF3 = new JTextField(5);
        JTF1.setBounds(20,20,200,50);
        JTF2.setBounds(20,80,200,50);
        JTF3.setBounds(20,140,200,50);
        add(JTF1);
        add(JTF2);
        JTF3.setColumns(6);
        JTF3.setText(String.valueOf(JTF3.getColumns()));//返回文本字段中的列数
        JTF3.setColumns(6);
        JTF3.setHorizontalAlignment(JTF3.RIGHT);//设置对齐方式
        add(JTF3);
    }
}

遗留问题:getColumns()

2.2、JButton方法:

方法 说明
JButton() 创建不带文本和图标的按钮
JButton(Icon icon) 创建带图标的按钮
JButton(String text) 创建带文本的按钮
JButton(String text,Icon icon) 创建带文本和图标的按钮
setRolloverlcon(Icon img) 当鼠标经过时,显示指定的图标
setSelectedlcon(Icon img) 当选择按钮时,显示img指定的图标
import javax.print.attribute.standard.JobName;
import javax.swing.*;
import java.awt.*;

public class TextJButton {
   
    public static void main(String[] args) {
   
        new winFrame();
    }
}
class winFrame extends JFrame{
   
    public winFrame(){
   
        init();
    }

    public void init(){
   
        setTitle("窗口标题");
        setBounds(500,300,500,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setResizable(false);
        //创建容器
        Container container = this.getContentPane();
        container.setLayout(null);//绝对布局
        
        //创建不带文本和图标的按钮
        JButton jButton = new JButton();
//        jButton.setText("按钮A");
        jButton.setBounds(0,10,200,50);
        container.add(jButton);
        /
        //创建带图标的按钮
        JButton jButton1 = new JButton(new ImageIcon(".\\icon\\如何养猪.jpg"));
        jButton1.setBounds(0,70,200,200);
        container.add(jButton1);
        /
        //创建带文本的按钮
        JButton jButton2 = new JButton("按钮B,因为A没显示,哈哈哈");
        jButton2.setBounds(0,280,200,50);
        container.add(jButton2);
        /
        //创建带文本和图标的按钮
        JButton jButton3 = new JButton("按钮C"/*当图片不存在时显示*/,
                new ImageIcon(".\\icon\\花瓣.png"));
        jButton3.setBounds(0,340,300,100);
        container.add(jButton3);
        //当鼠标经过时,显示指定的图标setRolloverIcon
        JButton jButton4 = new JButton();
        jButton4.setBounds(210,10,150,200);
        jButton4.setRolloverIcon(new ImageIcon(".\\icon\\淋光.jpg"));
        jButton4.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值