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

📄 statusline.java

📁 一个用java开发界面的程序集(jfc核心编程)
💻 JAVA
字号:
package JFCBook.Chapter6.jdk13;

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

public class StatusLine extends JLabel implements PropertyChangeListener {
	private String defaultMessage = "Ready";

	public StatusLine(ButtonSnooper snooper) {
		setText(defaultMessage);
		snooper.addPropertyChangeListener(this);
	}

	public void setDefaultMessage(String defaultMessage) {
		this.defaultMessage = defaultMessage;
	}

	public void setMessage(String message) {
		setText(message != null ? message : defaultMessage);
		Dimension d = getSize();
		paintImmediately(new Rectangle(0, 0, d.width, d.height));
	}

	public void propertyChange(PropertyChangeEvent evt) {
		String name = evt.getPropertyName();
		if (name.equals(ButtonSnooper.ARMED_BUTTON) ||
				name.equals(ButtonSnooper.PRESSED_BUTTON)) {
			String text = null;
			AbstractButton button = (AbstractButton)evt.getNewValue();
			Action sourceAction;
			if (button != null &&
					(sourceAction = button.getAction()) != null) {
				String property;
				if (name.equals(ButtonSnooper.ARMED_BUTTON)) {
					property = Action.SHORT_DESCRIPTION;
				} else {
					property = Action.LONG_DESCRIPTION;
				}
				Object value = sourceAction.getValue(property);
				if (value instanceof String) {
					text = (String)value;
				}
			}

			// "text" is now null if there is no active or pressed
			// button or the button has no associated action or there
			// is an action but it does not have a string stored under
			// the SHORT_DESCRIPTION or LONG_DESCRIPTION property. In
			// any of those cases, the default message will be displayed.
			setMessage(text);                                            
		}
	}
}

⌨️ 快捷键说明

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