2. 设计一个简单的实现字体设置窗口程序,可根据用户选择设置字体的种类、字号、字形、颜色等属性。运行结果:

2. 设计一个简单的实现字体设置窗口程序,可根据用户选择设置字体的种类、字号、字形、颜色等属性。运行结果:

 import javax.swing.*;import java.awt.event.*;import java.awt.*;
public class FontSet extends JFrame implements ItemListener, ActionListener{
	JRadioButton jrbRed = new JRadioButton("红色",true);
	JRadioButton jrbGreen = new JRadioButton("绿色");
	JRadioButton jrbBlue = new JRadioButton("蓝色");		
	private ButtonGroup bg = new ButtonGroup();
		JCheckBox jcb1 = new JCheckBox("加粗");
	JCheckBox jcb2 = new JCheckBox("倾斜");	
	JComboBox listFont;
	JList listSize;
	JTextArea taDemo;
	JButton btnExit,btnEdit;
	
	public FontSet(){
			GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
		String fontName[] = g.getAvailableFontFamilyNames();
		
		Box boxV1 = Box.createVerticalBox();
		boxV1.add(new JLabel("请选择字体"));
		listFont = new JComboBox(fontName);
		boxV1.add(new JScrollPane(listFont));
		boxV1.add(Box.createVerticalStrut(155));
				
		Box boxV2 = Box.createVerticalBox();
		boxV2.add(new JLabel("请选择字号"));
		String strSize[] = new String[30];
		for(int i=0;i<30;i++){
			strSize[i] = ""+(i+16);
		}
		listSize = new JList(strSize);
		boxV2.add(new JScrollPane(listSize));
		
		Box boxV3 = Box.createVerticalBox();
		boxV3.add(new JLabel("请选择字形"));		
		boxV3.add(jcb1);
		boxV3.add(jcb2);
		boxV3.add(Box.createVerticalGlue());
		
		Box boxV4 = Box.createVerticalBox();		
		boxV4.add(new JLabel("请选择字色"));
		boxV4.add(jrbRed);
		boxV4.add(jrbGreen);
		boxV4.add(jrbBlue);
		boxV4.add(Box.createVerticalGlue());
		
		bg.add(jrbRed);
		bg.add(jrbGreen);
		bg.add(jrbBlue);
		
		Box boxH1 = Box.createHorizontalBox();
	
		boxH1.add(boxV1);
		boxH1.add(Box.createHorizontalStrut(15));
		boxH1.add(boxV2);
		boxH1.add(Box.createHorizontalStrut(15));
		boxH1.add(boxV3);
		boxH1.add(Box.createHorizontalStrut(15));
		boxH1.add(boxV4);
		
		Box boxH2 = Box.createHorizontalBox();
		taDemo = new JTextArea("这是字体设置的测试文字",5,20);
		boxH2.add(taDemo);
		
		Box boxV5 = Box.createVerticalBox();
		
		btnExit = new JButton("退出");
		btnEdit = new JButton("编辑");
		boxV5.add(btnExit);
		boxV5.add(btnEdit);	
		boxH2.add(boxV5);
		
		btnExit.addActionListener(this);
		btnEdit.addActionListener(this);
		
		Box baseBox = Box.createVerticalBox();
		baseBox.add(boxH1);
		baseBox.add(boxH2);

		baseBox.add(boxH2);
		
		Container con = getContentPane();
		con.setLayout(new FlowLayout());
		con.add(baseBox);
		
		setTitle("字体设置器");
		setBounds(150,150,550,380);
		setVisible(true);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}
	
	public void itemStateChanged(ItemEvent e){		
	}
	
	public void actionPerformed(ActionEvent e){
		if (e.getSource() == btnExit) {
			dispose();
		}
		else if (e.getSource() == btnEdit){
			int style = Font.PLAIN;
			if(jcb1.isSelected()) 
				style |= Font.BOLD;
			if(jcb2.isSelected()) 
				style |= Font.ITALIC;
			
			if(jrbRed.isSelected())
				taDemo.setForeground(Color.RED);
			if(jrbGreen.isSelected())
				taDemo.setForeground(Color.GREEN);
			if(jrbBlue.isSelected())
				taDemo.setForeground(Color.BLUE);
	
			String strFont = (String)listFont.getSelectedItem();
			Font ft = new Font(strFont,style,listSize.getSelectedIndex()+16);
			taDemo.setFont(ft);
		}
	}
	
	public static void main(String[] args){
		FontSet vt = new FontSet();
	}}


  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一、单项选择题(本大题共10小题,每小题1分,共10分) 1.下述字符组合不能作为Java程序标识符的是(   ) A.Aa12 B.大x C.y小 D.5x 2.以下程序代码的输出的结果是(   ) int x=53; System. out. println(1.0+x/2); A.27.0 B.27.5 C.1.026 D.1.026.5 3.参照以下Java代码,以下四个叙述中最确切的是(   ) class A{ int x; static int y; void fac(String s){Syatem. out. println("字符串:"+s);} } A.x、y和s都是成员变量 B.x是实例变量、y是类变量、s是局部变量 C.x和y是实例变量、s是参数 D.x、y和s都是实例变量 4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是 (   ) A.String B.StringBuffer C.StringTokenizer D.stringTokenizer 5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是(   ) A.JFrame(s) B.window(s) C.new JFrame(s) D.super(s) 6.以下关于菜单的叙述中,正确的是(   ) A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项 B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项 C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项 D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项 7.以下所述内容全部是字型要素的是(   ) A.字体字形大小 B.字体、风格和字号 C.字形、风格和字号 D.字形颜色字号 8.用Thread子类实现多线程的步骤顺序是(   ) A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法 B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例 C.创建Thread子类的实例,让线程调用start()方法 D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法
好的,下面是使用Java设置文本编辑字体大小字号颜色的示例代码: ```java import javax.swing.*; import java.awt.*; public class TextEditor extends JFrame { private JTextArea textArea; public TextEditor() { // 创建一个新的 JFrame 窗口 setTitle("文本编辑器"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(600, 400); setLocationRelativeTo(null); // 创建一个新的 JTextArea 文本区域,并将其添加到 JFrame 窗口中 textArea = new JTextArea(); add(new JScrollPane(textArea)); // 创建一个新的菜单栏,并将其添加到 JFrame 窗口中 JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); // 创建一个新的菜单,并将其添加到菜单栏中 JMenu formatMenu = new JMenu("格式"); menuBar.add(formatMenu); // 创建一个新的菜单项,并将其添加到菜单中 JMenuItem fontMenuItem = new JMenuItem("字体"); formatMenu.add(fontMenuItem); // 添加字体菜单项的监听器 fontMenuItem.addActionListener(e -> { Font currentFont = textArea.getFont(); Font newFont = JFontChooser.showDialog(this, "选择字体", currentFont); if (newFont != null) { textArea.setFont(newFont); } }); // 创建一个新的工具栏,并将其添加到 JFrame 窗口中 JToolBar toolBar = new JToolBar(); add(toolBar, BorderLayout.NORTH); // 创建一个新的字体大小下拉框,并将其添加到工具栏中 Integer[] fontSizes = {8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72}; JComboBox<Integer> fontSizeBox = new JComboBox<>(fontSizes); fontSizeBox.setSelectedItem(currentFont.getSize()); toolBar.add(fontSizeBox); // 添加字体大小下拉框的监听器 fontSizeBox.addActionListener(e -> { int fontSize = (Integer) fontSizeBox.getSelectedItem(); Font currentFont = textArea.getFont(); Font newFont = new Font(currentFont.getName(), currentFont.getStyle(), fontSize); textArea.setFont(newFont); }); // 创建一个新的字体颜色按钮,并将其添加到工具栏中 JButton fontColorButton = new JButton("字体颜色"); toolBar.add(fontColorButton); // 添加字体颜色按钮的监听器 fontColorButton.addActionListener(e -> { Color currentColor = textArea.getForeground(); Color newColor = JColorChooser.showDialog(this, "选择字体颜色", currentColor); if (newColor != null) { textArea.setForeground(newColor); } }); } public static void main(String[] args) { TextEditor editor = new TextEditor(); editor.setVisible(true); } } ``` 在上面的代码中,我们首先创建了一个新的 JFrame 窗口,并将一个 JTextArea 文本区域添加到其中。然后,我们创建了一个新的菜单栏和菜单,以及一个名为“字体”的菜单项。当用户点击“字体”菜单项时,我们使用 JFontChooser 显示了一个字体选择器对话框,让用户选择新的字体。然后,我们根据用户选择更新了 JTextArea 的字体。 接下来,我们创建了一个新的工具栏,并添加一个字体大小下拉框和一个字体颜色按钮。当用户选择新的字体大小颜色时,我们同样根据用户选择更新了 JTextArea 的字体大小颜色。 需要注意的是,上面的代码中引用了一些第三方库,如 JFontChooser 和 JColorChooser。这些库可以方便地提供字体选择器和颜色选择器对话框,使得我们的代码更加简洁和易读。如果您想要使用这些库,需要先在项目中引入相关的 jar 包。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值