212202GUI界面设计练习2

一.计算题(共2 题,100.0分)

1

设计一个改变按钮背景色的GUI界面,实现要求如下:

(1)此界面包括一个按钮、一个单选按钮组。按钮上的初始文本为“请为我选择一种背景颜色”,此单选按钮组含有三个单选按钮,文本分别是“粉色”、“橙色”和“青色”。效果如图1所示。

(2)分别为这三个单选按钮注册选项监听器(ItemListener),当选择“粉色”单选按钮时,按钮上的背景颜色改为“粉色”,文本内容改为“我的背景色变为了粉色”;以次类推,效果如图2、3、4所示。

f20ad96569668d794b7ce05c9d87e381.png

 

52b2e450c9812e56439e769f4508d084.png

 

b0c699126c0a20666b9a0828d8cb859a.png

 

13e8e53c1e2094cdbbd5ecacd172a03f.png

 

1

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;



import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JRadioButton;



public class t1 extends JFrame {



private JPanel p1, p2;

private JButton btnBig;

private JRadioButton rbPink, rbOrange, rbCyan;

private ButtonGroup bg;



t1() {

super("改变按钮的颜色");

p1 = new JPanel(new BorderLayout());

p2 = new JPanel();

btnBig = new JButton("请为我选择一种背景颜色");

rbPink = new JRadioButton("粉色", false);

rbOrange = new JRadioButton("橙色", false);

rbCyan = new JRadioButton("青色", false);

bg = new ButtonGroup();

bg.add(rbPink);

bg.add(rbOrange);

bg.add(rbCyan);



p1.add(btnBig, BorderLayout.CENTER);

p2.add(rbPink);

p2.add(rbOrange);

p2.add(rbCyan);

p1.add(p2, BorderLayout.SOUTH);

rbPink.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

btnBig.setText("我的背景色变为了粉色");

btnBig.setBackground(Color.PINK);

}

});



rbOrange.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

btnBig.setText("我的背景色变为了橙色");

btnBig.setBackground(Color.ORANGE);

}

});



rbCyan.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

btnBig.setText("我的背景色变为了青色");

btnBig.setBackground(Color.CYAN);

}

});



this.add(p1);

this.setBounds(280, 300, 300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}



public static void main(String[] args) {

new t1();

}



}

 

 2

 

设计一个能改变按钮字号的GUI界面,具体实现要求如下:

(1)界面中包括一个标签、一个组合框(可选项为:12、16、20)、一个初始文本为“请在组合框中为我选择字号!”的按钮,此按钮背景色为Color.YELLOW,面板采用网格布局,效果如下图1所示。

(2)为组合框注册选项监听器(ItemListener),当选择组合框的一个值时,按钮文本的字号就变为组合框中选中的值,并把按钮上的文本重新设置为:“我现在是XX号字体”,效果图如2、3、4、5所示。(说明:new Font(String 字体, int 字体样式, int 字号))

2fdbd800a5d3c3783238e08ae8e2d102.png

 

0892d6c2de7770c483a5fd30d66d47e3.png

 

f8dc53df4423abb4eabd379294cebecd.png

a38b492d18702d7e6884143245be6afb.png

 

 

55f948c039b06ee364766323b4e66bbf.png

 

 2

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class t2 extends JFrame {
	private JPanel p1, p2;
	private JLabel lbSize;
	private JComboBox cmbSize;
	private JButton btnOk;

	private t2() {
		super("改变按钮的字号");
		p1 = new JPanel(new GridLayout(2, 1));
		p2 = new JPanel();
		lbSize = new JLabel("请为按钮的文本选择字号:");
		cmbSize = new JComboBox(new String[] { "12", "16", "20", "22" });
		btnOk = new JButton("请在组合框中为我选择字号!");
		btnOk.setBackground(Color.yellow);
		p2.add(lbSize);
		p2.add(cmbSize);
		p1.add(p2);
		p1.add(btnOk);
		cmbSize.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {
				String str = (String) cmbSize.getSelectedItem();
				btnOk.setText("我现在是" + str + "号字体");
				btnOk.setFont(new Font("宋体", Font.PLAIN, Integer.parseInt(str)));
			}
		});

		this.add(p1);
		this.setBounds(900, 300, 300, 250);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

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

	}

}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值