buttoninputmapexample1.java

来自「一个用java开发界面的程序集(jfc核心编程)」· Java 代码 · 共 62 行

JAVA
62
字号
package JFCBook.Chapter5.jdk13;

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

public class ButtonInputMapExample1 extends JFrame {
	public ButtonInputMapExample1() {
		super("Button Input Map Example 1");

		JButton button = new JButton("PRESS");
		getContentPane().add(button, BorderLayout.CENTER);

		printActionMap(button.getActionMap());

		printInputMap(button.getInputMap(JComponent.WHEN_FOCUSED),
						"Input map used when focused");
		printInputMap(button.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT),
						"Input map used when ancestor of focused component");
		printInputMap(button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW),
						"Input map used when in focused window");
	}

	public static void printActionMap(ActionMap actionMap) {
		System.out.println("Button action map:");
		Object[] keys = actionMap.allKeys();
		if (keys != null) {
			for (int i = 0; i < keys.length; i++) {
				Object key = keys[i];
				Action targetAction = actionMap.get(key);
				System.out.println("\tName: <" + key + ">, action: "
									+ targetAction.getClass().getName());
			}
		}
	}

	public static void printInputMap(InputMap inputMap, String heading) {
		System.out.println("\n" + heading + ":");
		KeyStroke[] keys = inputMap.allKeys();
		if (keys != null) {
			for (int i = 0; i < keys.length; i++) {
				KeyStroke key = keys[i];
				Object actionName = inputMap.get(key);
				System.out.println("\tKey: <" + key + ">, action name: "
									+ actionName);
			}
		}
	}

	public static void main(String[] args) {
		JFrame f = new ButtonInputMapExample1();
		f.pack();
		f.setVisible(true);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

⌨️ 快捷键说明

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