⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setmsgprocess.java

📁 记事本
💻 JAVA
字号:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class setMsgProcess implements ActionListener, ListSelectionListener,
		ChangeListener {

	menu men;

	GUI gui;

	// 字的属性和对话框
	Font ft;

	JDialog jdg;

	// 设置文字字体
	JList jlstype;

	String[] fontList;

	JScrollPane jsp;

	JTextField word;

	// 设置文字格式
	String[] datastyle = { "常规", "斜体", "粗体", "粗斜体" };

	JList jlsstyle;

	JTextField style;

	// 设置文字大小
	String[] datasize = { "12", "14", "20", "32" };

	JList jlssize;

	JTextField size;

	// 预览
	JTextField example;

	// 设置颜色
	JSlider red;

	JTextField redsize;

	JSlider blue;

	JTextField bluesize;

	JSlider green;

	JTextField greensize;

	// 按钮
	JButton jbnok;

	JButton jbncancel;

	public setMsgProcess(menu men, GUI gui) {
		this.gui = gui;
		this.men = men;
	}

	// 构造面板
	public void construct() {
		// --设置各个控件的属性
		// 设置字体编辑框属性
		fontList = GraphicsEnvironment.getLocalGraphicsEnvironment()
				.getAvailableFontFamilyNames();// 获取系统的字体
		jlstype = new JList(fontList);
		jlstype.setVisibleRowCount(5);
		jlstype.addListSelectionListener(this);
		jsp = new JScrollPane();
		jsp.getViewport().add(jlstype);
		word = new JTextField(GUI.jt.getFont().getFontName());
		word.addActionListener(this);

		// 文字类型
		jlsstyle = new JList(datastyle);
		jlsstyle.setVisibleRowCount(5);
		jlsstyle.addListSelectionListener(this);
		style = new JTextField(datastyle[GUI.jt.getFont().getStyle()]);
		style.addActionListener(this);

		// 文字大小
		jlssize = new JList(datasize);
		jlssize.setVisibleRowCount(5);
		jlssize.addListSelectionListener(this);
		size = new JTextField(String.valueOf(GUI.jt.getFont().getSize()) );
		size.addActionListener(this);

		// 实例
		example = new JTextField("经伟制作 MADE BY JANG_GEUM");
		example.setPreferredSize(new Dimension(100, 50));
		example.setEditable(false);

		// 颜色
		red = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getRed());
		red.setPreferredSize(new Dimension(30, 80));
		red.addChangeListener(this);
		redsize = new JTextField(String.valueOf( GUI.jt.getForeground().getRed() ) );
		redsize.setPreferredSize(new Dimension(30, 20));
		redsize.addActionListener(this);

		blue = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getBlue());
		blue.setPreferredSize(new Dimension(30, 80));
		blue.addChangeListener(this);
		bluesize = new JTextField(String.valueOf( GUI.jt.getForeground().getBlue() ) );
		bluesize.setPreferredSize(new Dimension(30, 20));
		bluesize.addActionListener(this);

		green = new JSlider(JSlider.VERTICAL, 0, 255, GUI.jt.getForeground().getGreen());
		green.setPreferredSize(new Dimension(30, 80));
		green.addChangeListener(this);
		greensize = new JTextField( String.valueOf( GUI.jt.getForeground().getGreen() ) );
		greensize.setPreferredSize(new Dimension(30, 20));
		greensize.addActionListener(this);

		// 按钮
		jbnok = new JButton("确认");
		jbncancel = new JButton("取消");
		jbnok.addActionListener(this);
		jbncancel.addActionListener(this);
		// --各个控件的布局
		JPanel p0 = new JPanel(new BorderLayout());
		p0.add(word, BorderLayout.NORTH);
		p0.add(jsp, BorderLayout.CENTER);
		p0.setPreferredSize(new Dimension(80, 140));
		p0.setBorder(BorderFactory.createTitledBorder("字体"));
		// 字形布局
		JPanel p1 = new JPanel(new BorderLayout());
		p1.add(style, BorderLayout.NORTH);
		p1.add(jlsstyle, BorderLayout.CENTER);
		p1.setPreferredSize(new Dimension(50, 140));
		p1.setBorder(BorderFactory.createTitledBorder("字形"));
		// 大小布局
		JPanel p2 = new JPanel(new BorderLayout());
		p2.add(size, BorderLayout.NORTH);
		p2.add(jlssize, BorderLayout.CENTER);
		p2.setPreferredSize(new Dimension(40, 140));
		p2.setBorder(BorderFactory.createTitledBorder("大小"));
		// 颜色
		JPanel p5 = new JPanel(new BorderLayout());
		p5.add(new JLabel("红"), BorderLayout.NORTH);
		p5.add(redsize, BorderLayout.CENTER);
		p5.add(red, BorderLayout.SOUTH);
		p5.setPreferredSize(new Dimension(30, 140));
		//
		JPanel p6 = new JPanel(new BorderLayout());
		p6.add(new JLabel("绿"), BorderLayout.NORTH);
		p6.add(greensize, BorderLayout.CENTER);
		p6.add(green, BorderLayout.SOUTH);
		p6.setPreferredSize(new Dimension(30, 140));
		//
		JPanel p7 = new JPanel(new BorderLayout());
		p7.add(new JLabel("蓝"), BorderLayout.NORTH);
		p7.add(bluesize, BorderLayout.CENTER);
		p7.add(blue, BorderLayout.SOUTH);
		p7.setPreferredSize(new Dimension(30, 140));
		//
		JPanel p8 = new JPanel(new GridLayout(1, 3));
		p8.add(p5);
		p8.add(p6);
		p8.add(p7);
		p8.setPreferredSize(new Dimension(110, 140));
		p8.setBorder(BorderFactory.createTitledBorder("颜色"));
		// 综合颜色布局
		JPanel p3 = new JPanel();
		p3.add(p0);
		p3.add(p1);
		p3.add(p2);
		p3.add(p8);
		p3.setPreferredSize(new Dimension(330, 140));
		// 示例布局
		JPanel p4 = new JPanel(new BorderLayout());
		p4.add(new JLabel("示例"), BorderLayout.WEST);
		p4.add(example, BorderLayout.CENTER);
		// 按钮布局
		JPanel p10 = new JPanel();
		p10.add(jbnok);
		p10.add(jbncancel);
		p10.setPreferredSize(new Dimension(70, 120));
		// 加载到对话框
		jdg = new JDialog(new Frame(), "设置");
		jdg.setLayout(new BorderLayout());
		jdg.add(p3, BorderLayout.CENTER);
		jdg.add(p4, BorderLayout.SOUTH);
		jdg.add(p10, BorderLayout.EAST);
		// 设置对话框的属性
		jdg.setSize(400, 260);
		setFont();
		jdg.setResizable(false);
		jdg.setLocation(GUI.jf.getX() + GUI.jf.getWidth() / 2 - jdg.getWidth()
				/ 2, GUI.jf.getY() + GUI.jf.getHeight() / 2 - jdg.getHeight()
				/ 2);
		jdg.setModal(true);
		jdg.setVisible(true);
	}

	// 设置字体属性
	public void setFont() {
		int i = 0, j;
		if (jlsstyle.getSelectedIndex() == 1)
			i = Font.ITALIC;
		else if (jlsstyle.getSelectedIndex() == 2)
			i = Font.BOLD;
		else if (jlsstyle.getSelectedIndex() == 3)
			i = Font.BOLD + Font.ITALIC;

		j = Integer.parseInt(size.getText());
		String type = word.getText();

		ft = new Font(type, i, j);

		example.setFont(ft);
		example.setForeground(new Color(Integer.parseInt(redsize.getText()),
				Integer.parseInt(greensize.getText()), Integer
						.parseInt(bluesize.getText())));
	}

	//消息处理
	public void actionPerformed(ActionEvent e) {
		// 初始化设置对话框
		if (e.getSource() == men.set[0]) {
			construct();
		}
		// “确认”按钮
		else if (e.getSource() == jbnok) {
			GUI.jt.setFont(ft);
			GUI.jt.setForeground(new Color(Integer.parseInt(redsize.getText()),
					Integer.parseInt(greensize.getText()), Integer
							.parseInt(bluesize.getText())));
			jdg.setVisible(false);
			jdg.dispose();
		}
		// “取消”按钮
		else if (e.getSource() == jbncancel) {
			jdg.setVisible(false);
			jdg.dispose();
		} else {
			int i;
			// 文字大小文本框
			if (e.getSource() == size) {
				i = Integer.parseInt(size.getText());
				if (i > 100) {
					size.setText("100");
				}
				if (i < 0) {
					size.setText("0");
				}
			}
			// 颜色 红色值
			else if (e.getSource() == redsize) {
				i = Integer.parseInt(redsize.getText());
				if (i > 255) {
					redsize.setText("255");
				}
				if (i < 0) {
					redsize.setText("0");
				}
				red.setValue(Integer.parseInt(redsize.getText()));
			}
			// 颜色 蓝色值
			else if (e.getSource() == bluesize) {
				i = Integer.parseInt(bluesize.getText());
				if (i > 255) {
					bluesize.setText("255");
				}
				if (i < 0) {
					bluesize.setText("0");
				}
				blue.setValue(Integer.parseInt(bluesize.getText()));
			}
			// 颜色 绿色值
			else if (e.getSource() == greensize) {
				i = Integer.parseInt(greensize.getText());
				if (i > 255) {
					greensize.setText("255");
				}
				if (i < 0) {
					greensize.setText("0");
				}
				green.setValue(Integer.parseInt(greensize.getText()));
			}
			// 字体类型文本框
			else if (e.getSource() == word) {
				String str = word.getText();
				for (i = 0; i < fontList.length; i++)
					if (str.equals(fontList[i]))
						break;
				word.setText(fontList[i % fontList.length]);
				jlstype.setSelectedValue(fontList[i % fontList.length], true);
			}
			// 文字格式
			else if (e.getSource() == style) {
				// 判断输入合法
				for (i = 0; i < datastyle.length; i++)
					if (style.getText().equals(datastyle[i]))
						break;
				if (i == datastyle.length) {
					style.setText("常规");
					jlsstyle.setSelectedIndex(0);
				}
				setFont();
			}
			setFont();
		}
	}

	// 处理列表选择
	public void valueChanged(ListSelectionEvent e) {
		if (e.getSource() == jlsstyle) {
			style.setText((String) jlsstyle.getSelectedValue());
		} else if (e.getSource() == jlssize) {
			size.setText((String) jlssize.getSelectedValue());
		} else if (e.getSource() == jlstype) {
			word.setText((String) jlstype.getSelectedValue());
		}
		setFont();
	}

	// 处理颜色值变化
	public void stateChanged(ChangeEvent e) {
		if (e.getSource() == red) {
			redsize.setText(String.valueOf(red.getValue()));
		} else if (e.getSource() == blue) {
			bluesize.setText(String.valueOf(blue.getValue()));
		} else if (e.getSource() == green) {
			greensize.setText(String.valueOf(green.getValue()));
		}
		setFont();
	}
}
/*

 jList2.setModel(new javax.swing.AbstractListModel() {
            String[] strings =java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()
				.getAvailableFontFamilyNames();// 获取系统的字体 
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -