java图形化用户界面程序设计练习题(点击切换卡片、选择字体样式并切换)

注:本文包含两个练习,为作者学习过程中做的小练习,仅供学习参考

1、利用CardLayout布局管理器完成界面设计,添加三个命令按钮Jbutton,初始显示“第一张卡片”,当单击按钮时显示下一卡片,如图所示:
在这里插入图片描述

该练习涉及知识点:
swing组件与awt组件的使用,JFrame容器与JPanel容器的使用,基本布局管理器的使用(CardLayout布局管理器),基本组件的使用(JButton组件),事件监听(actionPerformed事件),CardLayout布局中next()方法的使用,以及对组件的封装操作
本题涉及到的组件及容器:JFrame容器、Panel容器、Container容器、JButton组件

源代码:

package FourthPractice;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PracticeOne extends JFrame implements ActionListener{
	//定义外部容器
	Panel cardPanel = new Panel();
	//定义卡片布局对象
	CardLayout card = new CardLayout();
	//定义构造函数
	public PracticeOne() {
		super("卡片切换");
		setSize(300,200);
		setLocation(500,250);
		setVisible(true);
		
		//设置cardPanel面板对象为卡片布局
		cardPanel.setLayout(card);
		
		//创建三个JButton组件,并添加到cardPanel面板对象中
		JButton btn1 = new JButton("第一张卡片");
		JButton btn2 = new JButton("第二张卡片");
		JButton btn3 = new JButton("第三张卡片");
		cardPanel.add(btn1);
		cardPanel.add(btn2);
		cardPanel.add(btn3);
		//为按钮对象注册监听器
		btn1.addActionListener(this);
		btn2.addActionListener(this);
		btn3.addActionListener(this);
		//定义容器对象为当前窗体容器对象
		Container container = getContentPane();
		//将cardPanel面板放置在窗口边界布局的中间,窗口默认为边界布局
		container.add(cardPanel,BorderLayout.CENTER);
	}
	
	public void actionPerformed(ActionEvent e) {
		card.next(cardPanel);
	}
	
	//主方法
	public static void main(String[] args) {
		PracticeOne po = new PracticeOne();
	}
}

2、使用getAvailableFontFamilyNames()方法获得系统字体,添加到JComboBox中,可以选择某种字体,在画布中显示文本“Java入门与精通”,如图所示:
在这里插入图片描述
在这里插入图片描述

该练习涉及知识点:
swing组件与awt组件的使用,JFrame容器的使用,基本布局管理器的使用(BorderLayout布局管理器),基本组件的使用(JLabel组件和JComboBox组件),添加事件监听(addActionListener),BorderLayout布局中方位常量的使用(BorderLayout.PAGE_START/BorderLayout.CENTER),JComboBox中获取当前选中的元素的方法(getSelectedItem()),设置字体格式的方法(Font()) ,获取系统字体名称的方法(getAvailableFontFamilyNames())

源代码:

package FourthPractice;

import java.awt.*;
import javax.swing.*;

public class fontswitch{
	JFrame jf;
	BorderLayout bl;
	JLabel jl;
	//创建构造函数 
	public fontswitch() {
		jf = new JFrame();
		bl = new BorderLayout();
		jl = new JLabel("Java入门与精通",JLabel.CENTER);//设置标签内容及居中
		//设置标签的默认字体,Font(<字体名称>,<字体样式(1:加粗,0:标准)><字体大小>)
		jl.setFont(new Font("仿宋",0,35));
		
		jf.setLayout(bl);
		jf.setSize(300,200);
		jf.setVisible(true);
		
		//获取系统字体,并放入fontNames数组中
		GraphicsEnvironment fn = GraphicsEnvironment.getLocalGraphicsEnvironment();
	    String[] fontNames = fn.getAvailableFontFamilyNames();
	    //创建下拉列表框并将fontNames数组作为参数传入
	    JComboBox<String> jb = new JComboBox<String>(fontNames);
	    //设置默认字体
	    jb.setSelectedItem("仿宋");
		//将标签组件和下拉列表框组件添加进borderLayout布局中
		jf.add(jb, BorderLayout.PAGE_START);
		jf.add(jl, BorderLayout.CENTER);
		//给jb添加事件监听
		jb.addActionListener(e -> {
			String item = (String)jb.getSelectedItem();//获取选中的字体,并强制转换为String型
			jl.setFont(new Font(item,0,35));//设置标签字体格式
		});
	}
	public static void main(String[] args) {
		fontswitch f = new fontswitch();
	}
}

希望本文对你有所帮助,加油!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值