`
liufei.fir
  • 浏览: 686066 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javax.swing.AbstractAction

阅读更多
1,  用buttonGroup.getSelection().getActionCommand()来获取当前选中的按钮的动作命令;

2,  setEditable方法把一个组合框设置为可编辑的,注意编辑只会影响当前项,它不会改变列表的内容;

3,  设置快捷键的N种方式:

a)

JMenuItem

(String text, int mnemonic);

b)        Javax.swing.Action.putValue(Action.MNEMONIC_KEY,new Integer(char));

c)        Javax.swing.AbstractAction.putValue(Action.MNEMONIC_KEY,new Integer(char));

d)        Javax.swing.AbstractAction.setMnemonic(char);

e)         Javax.swing.AbstractAction.setMnemonic(int);

4,  设置加速器:

a)         Javax.swing.JMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

b)        Javax.swing.JMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

c)        Javax.swing.JComponent.getInputMap(int flag).put(KeyStroke Keystroke,Object actionMapKey);

5,  javax.swing.AbstractButton中包含的几个比较常用的方法:

a)         setAction();

b)        setHorizontalTextPosition();设置文本和突变的水平相对位置,默认RIGHT.

c)        isSelected();检测是否选中.

d)        setSelected();初始化选中/否.

e)         setMnemonic(char); setMnemonic(int);为按钮设置快捷字符.

f)         setDisplayedMnemonicIndex(int);把按钮文本中所引的字符设为下划线的.

6,  只有工具栏在一个具有边界布局或者其它任何支持NORTH,SOUTH,WEST和EAST约束布局的容器内,那么他才能够被拖动;

7,  当你关闭包含一个脱离工具栏的框架时,该工具栏就会跳回到它的原始框架内;

8,  默认情况下,工具栏是水平的,按纽是供据兰内最常见的组件,但可以把一个组合框添加到工具栏中;

9,  BoxLayout会把组件增大到超过首选尺寸,如果用BoxLayout来布局一个文本框,那么该文本框可能会变得非常大,解决方法是:把最大尺寸设成首选尺寸:

a)     Javax.swing.JTextField.setMaximumSize(javax.swing.JTextField.getPreferredSize());

10,   默认情况下,箱式布局中各组件间没有间距,但是有三种填充件:支柱(strut),固定件(RigidArea),胶水(Glue);

11,   当GridBagConstraints.fill = GridBagConstraints.NONE时,GridBagconstraints.anchor才起效用;

12,  在Spring中,如果要计算两个弹簧的差异,则利用Spring.sum(javax.swing.Spring,spring.minus(javax.swing.Spring))

13,对于JButton组件,也可以利用setBounds方法来直接定位和设置大小;

14, 在旧的AWT中,遍历顺序是由组件被插入到容器中的顺序所决定的,在swing中,插入顺序无关紧要-------组件的布局决定了遍历顺序;

15,  在JDK1.4中,调用Component.setFocusable(false);从焦点的遍历中移出一个组件;

16,  在JDK1.4中,有两个标准的遍历策略:

a)         纯粹的AWT应用程序使用DefaultFocusTraversalPolicy;

b)        Swing应用程序使用LayoutFocusTraversalPolicy;

17,  当你构造一个Dialog对象时,你需要指定拥有者框架,所以在对话框准备显示而不是构造它的时候确定拥有者是一个更好的解决方案。技巧是让自定义类继承JPanel而不是JDialog;

18,  设置默认Focus按钮:javax.swing.JDialog.getRootPane().setDefaultButton(javax.swing.JButton);但你需要小心仅在你包装面板进入对话框之后再设置默认按钮,面板自己没有根源窗格;

19,  Javax.swing.JColorChooser.reserChoosableFilters()来清除旧的文件过渡器

package com.wsy;

import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.Map;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JInternalFrame;

import com.wsy.iframe.BookAddIFrame;
import com.wsy.iframe.BookBackIFrame;
import com.wsy.iframe.BookBorrowIFrame;
import com.wsy.iframe.BookModiAndDelIFrame;
import com.wsy.iframe.BookSearchIFrame;
import com.wsy.iframe.BookTypeAddIFrame;
import com.wsy.iframe.BookTypeModiAndDelIFrame;
import com.wsy.iframe.GengGaiMiMa;
import com.wsy.iframe.ReaderAddIFrame;
import com.wsy.iframe.ReaderModiAndDelIFrame;
import com.wsy.iframe.UserAddIFrame;
import com.wsy.iframe.UserModiAndDelIFrame;
import com.wsy.iframe.newBookCheckIFrame;
import com.wsy.iframe.newBookOrderIFrame;
import com.wsy.util.*;
/**
* 菜单和按钮的Action对象
*
*/
public class MenuActions {
private static Map<String, JInternalFrame> frames; // 子窗体集合

public static PasswordModiAction MODIFY_PASSWORD; // 修改密码窗体动作
public static UserModiAction USER_MODIFY; // 修改用户资料窗体动作
public static UserAddAction USER_ADD; // 用户添加窗体动作
public static BookSearchAction BOOK_SEARCH; // 图书搜索窗体动作
public static GiveBackAction GIVE_BACK; // 图书归还窗体动作
public static BorrowAction BORROW; // 图书借阅窗体动作
public static CheckAndAcceptNewBookAction NEWBOOK_CHECK_ACCEPT;// 修改密码动作
public static BoodOrderAction NEWBOOK_ORDER; // 新书定购窗体动作
public static BookTypeModiAction BOOKTYPE_MODIFY; // 图书类型修改窗体动作
public static BookTypeAddAction BOOKTYPE_ADD; // 图书类型添加窗体动作
public static ReaderModiAction READER_MODIFY; // 读者信息修改窗体动作
public static ReaderAddAction READER_ADD; // 读者信息添加窗体动作
public static BookModiAction BOOK_MODIFY; // 图书信息修改窗体动作
public static BookAddAction BOOK_ADD; // 图书信息添加窗体动作
public static ExitAction EXIT; // 系统退出动作

static {
frames = new HashMap<String, JInternalFrame>();

MODIFY_PASSWORD = new PasswordModiAction();
USER_MODIFY = new UserModiAction();
USER_ADD = new UserAddAction();
BOOK_SEARCH = new BookSearchAction();
GIVE_BACK = new GiveBackAction();
BORROW = new BorrowAction();
NEWBOOK_CHECK_ACCEPT = new CheckAndAcceptNewBookAction();
NEWBOOK_ORDER = new BoodOrderAction();
BOOKTYPE_MODIFY = new BookTypeModiAction();
BOOKTYPE_ADD = new BookTypeAddAction();
READER_MODIFY = new ReaderModiAction();
READER_ADD = new ReaderAddAction();
BOOK_MODIFY = new BookModiAction();
BOOK_ADD = new BookAddAction();
EXIT = new ExitAction();
}

private static class PasswordModiAction extends AbstractAction {
PasswordModiAction() {
putValue(Action.NAME,"更改口令");
putValue(Action.LONG_DESCRIPTION, "修改当前用户密码");
putValue(Action.SHORT_DESCRIPTION, "更换口令");//在“更改口令”提示中显示的文字
//putValue(Action.SMALL_ICON,CreatecdIcon.add("bookAddtb.jpg"));
//将图标存储到动作对象中
//setEnabled(false);//使动作禁用
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("更改密码")||frames.get("更改密码").isClosed()) {
GengGaiMiMa iframe=new GengGaiMiMa();
frames.put("更改密码", iframe);
Library.addIFame(frames.get("更改密码"));
}
}
}

private static class UserModiAction extends AbstractAction {
UserModiAction() {
super("用户修改与删除", null);
putValue(Action.LONG_DESCRIPTION, "修改和删除用户信息");
putValue(Action.SHORT_DESCRIPTION, "用户修改与删除");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("用户信息修改与删除")||frames.get("用户信息修改与删除").isClosed()) {
UserModiAndDelIFrame iframe=new UserModiAndDelIFrame();
frames.put("用户信息修改与删除", iframe);
Library.addIFame(frames.get("用户信息修改与删除"));
}
}
}

private static class UserAddAction extends AbstractAction {
UserAddAction() {
super("用户添加", null);
putValue(Action.LONG_DESCRIPTION, "添加新的用户");
putValue(Action.SHORT_DESCRIPTION, "用户添加");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("用户信息添加")||frames.get("用户信息添加").isClosed()) {
UserAddIFrame iframe=new UserAddIFrame();
frames.put("用户信息添加", iframe);
Library.addIFame(frames.get("用户信息添加"));
}

}
}

private static class BookSearchAction extends AbstractAction {
BookSearchAction() {
super("图书搜索", null);
putValue(Action.LONG_DESCRIPTION, "搜索入库的图书信息");
putValue(Action.SHORT_DESCRIPTION, "图书搜索");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书查询")||frames.get("图书查询").isClosed()) {
BookSearchIFrame iframe=new BookSearchIFrame();
frames.put("图书查询", iframe);
Library.addIFame(frames.get("图书查询"));
}
}
}

private static class GiveBackAction extends AbstractAction {
GiveBackAction() {
super("图书归还", null);
putValue(Action.LONG_DESCRIPTION, "归还借阅的图书");
putValue(Action.SHORT_DESCRIPTION, "图书归还");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书归还管理")||frames.get("图书归还管理").isClosed()) {
BookBackIFrame iframe=new BookBackIFrame();
frames.put("图书归还管理", iframe);
Library.addIFame(frames.get("图书归还管理"));
}
}
}

private static class BorrowAction extends AbstractAction {
BorrowAction() {
super("图书借阅", null);
putValue(Action.LONG_DESCRIPTION, "从图书馆借阅图书");
putValue(Action.SHORT_DESCRIPTION, "图书借阅");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书借阅管理")||frames.get("图书借阅管理").isClosed()) {
BookBorrowIFrame iframe=new BookBorrowIFrame();
frames.put("图书借阅管理", iframe);
Library.addIFame(frames.get("图书借阅管理"));
}
}
}

private static class CheckAndAcceptNewBookAction extends AbstractAction {
CheckAndAcceptNewBookAction() {
super("验收新书", null);
putValue(Action.LONG_DESCRIPTION, "验收订阅的新图书");
putValue(Action.SHORT_DESCRIPTION, "验收新书");
}
public void actionPerformed(ActionEvent e) {

if (!frames.containsKey("图书验收")||frames.get("图书验收").isClosed()) {
newBookCheckIFrame iframe=new newBookCheckIFrame();
frames.put("图书验收", iframe);
Library.addIFame(frames.get("图书验收"));
}
}
}

private static class BoodOrderAction extends AbstractAction {
BoodOrderAction() {
super("新书定购", null);
putValue(Action.LONG_DESCRIPTION, "定购新的图书");
putValue(Action.SHORT_DESCRIPTION, "新书定购");
}
public void actionPerformed(ActionEvent e) {

if (!frames.containsKey("新书订购管理")||frames.get("新书订购管理").isClosed()) {
newBookOrderIFrame iframe=new newBookOrderIFrame();
frames.put("新书订购管理", iframe);
Library.addIFame(frames.get("新书订购管理"));
}
}
}

private static class BookTypeModiAction extends AbstractAction {
BookTypeModiAction() {
super("图书类别修改", null);
putValue(Action.LONG_DESCRIPTION, "修改图书的类别信息");
putValue(Action.SHORT_DESCRIPTION, "图书类别修改");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书类别修改")||frames.get("图书类别修改").isClosed()) {
BookTypeModiAndDelIFrame iframe=new BookTypeModiAndDelIFrame();
frames.put("图书类别修改", iframe);
Library.addIFame(frames.get("图书类别修改"));
}
}
}

private static class BookTypeAddAction extends AbstractAction {
BookTypeAddAction() {
super("图书类别添加", null);
putValue(Action.LONG_DESCRIPTION, "为图书馆添加新的图书类别");
putValue(Action.SHORT_DESCRIPTION, "图书类别添加");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书类别添加")||frames.get("图书类别添加").isClosed()) {
BookTypeAddIFrame iframe=new BookTypeAddIFrame();
frames.put("图书类别添加", iframe);
Library.addIFame(frames.get("图书类别添加"));
}
}
}
private static class ReaderModiAction extends AbstractAction {
ReaderModiAction() {
super("读者修改与删除", null);
putValue(Action.LONG_DESCRIPTION, "修改和删除读者的基本信息");
putValue(Action.SHORT_DESCRIPTION, "读者修改与删除");
}
public void actionPerformed(ActionEvent e) {

if (!frames.containsKey("读者信息修改与删除")||frames.get("读者信息修改与删除").isClosed()) {
ReaderModiAndDelIFrame iframe=new ReaderModiAndDelIFrame();
frames.put("读者信息修改与删除", iframe);
Library.addIFame(frames.get("读者信息修改与删除"));
}
}
}

private static class ReaderAddAction extends AbstractAction {
ReaderAddAction() {
super("读者信息添加", null);
putValue(Action.LONG_DESCRIPTION, "为图书馆添加新的读者会员信息");
putValue(Action.SHORT_DESCRIPTION, "读者信息添加");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("读者相关信息添加")||frames.get("读者相关信息添加").isClosed()) {
ReaderAddIFrame iframe=new ReaderAddIFrame();
frames.put("读者相关信息添加", iframe);
Library.addIFame(frames.get("读者相关信息添加"));
}
}
}
//图书修改与删除
private static class BookModiAction extends AbstractAction {
BookModiAction() {
super("图书修改", null);
putValue(Action.LONG_DESCRIPTION, "修改和删除图书信息");
putValue(Action.SHORT_DESCRIPTION, "图书修改");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书修改")||frames.get("图书修改").isClosed()) {
BookModiAndDelIFrame iframe=new BookModiAndDelIFrame();
frames.put("图书修改", iframe);
Library.addIFame(frames.get("图书修改"));
}
}
}
private static class BookAddAction extends AbstractAction { // 图书信息添加---已经实现,请参照
BookAddAction() {

super("图书信息添加", null);
//super();
putValue(Action.LONG_DESCRIPTION, "为图书馆添加新的图书信息");
putValue(Action.SHORT_DESCRIPTION, "图书信息添加");
}
public void actionPerformed(ActionEvent e) {
if (!frames.containsKey("图书信息添加")||frames.get("图书信息添加").isClosed()) {
BookAddIFrame iframe = new BookAddIFrame();
frames.put("图书信息添加", iframe);
Library.addIFame(frames.get("图书信息添加"));
}
}
}
private static class ExitAction extends AbstractAction { // 退出系统动作
public ExitAction() {
super("退出系统", null);
putValue(Action.LONG_DESCRIPTION, "退出图书馆管理系统");
putValue(Action.SHORT_DESCRIPTION, "退出系统");
}
public void actionPerformed(final ActionEvent e) {
System.exit(0);
}
}

private MenuActions() {
super();
}

}
分享到:
评论

相关推荐

    Swing界面开发和游戏开发.docx

    import javax.swing.AbstractAction; import javax.swing.Action; import java.awt.event.ActionEvent; public class ButtonExample { public static void main(String[] args) { JFrame frame = new JFrame(); ...

    java pdf 查看器

    import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton;...

    图书馆管理系统

    import javax.swing.AbstractAction; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; ...

    java课程设计图书馆管理系统.doc

    import javax.swing.AbstractAction; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; ...

    java.swing包结构

    在Java Swing中,`javax.swing` 包是核心部分,包含了大量用于创建用户界面的类和接口。 首先,`AbstractAction` 类是 `Action` 接口的实现,它为按钮、菜单项等组件提供行为。它支持可克隆、可序列化,并允许动作...

    疯狂java实战演义-第3章图片浏览器[归纳].pdf

    2. **ViewerAction**:这是一个继承自`javax.swing.AbstractAction`的类,用于处理用户操作的事件。比如,当用户点击“打开”、“放大”或“缩小”按钮时,对应的`ViewerAction`实例会触发相应的逻辑。 3. **...

    北大青鸟第一学期JAVA课件第11章

    import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; public class MenuFrame extends JFrame { public MenuFrame() ...

    Swing用户界面组件

    在Swing中,组件通常被称为JComponents,因为它们继承自`javax.swing.JComponent`类。下面将详细探讨Swing用户界面组件及其主要特点。 1. **基本组件** - **JButton**: 这是最常见的组件,用于创建按钮。可以设置...

    JAVA按键值更改转换

    Swing库提供了一个更现代的事件模型,推荐使用`java.awt.event.ActionEvent`和`javax.swing.Action`。尽管如此,`KeyListener`在Swing中仍然可用。不过,为了更好的事件处理,可以使用`Key Bindings`,如下所示: `...

    简单的java窗体及事件程序

    - 导入必要的Swing库:`import javax.swing.*;` - 创建JFrame实例,并添加组件:`JFrame frame = new JFrame("我的窗体"); JButton button = new JButton("点击我"); frame.getContentPane().add(button);` - ...

    使用swingx创建的折叠菜单

    import javax.swing.*; import org.jdesktop.swingx.*; ``` 2. **定义动作类** ```java class SubAction extends AbstractAction { SubAction() { super("clickit"); } public void actionPerformed...

    当按下任何Control时,Java会检测到Ctrl。

    import javax.swing.JFrame; import javax.swing.JTextField; public class CtrlKeyDetector { public static void main(String[] args) { JFrame frame = new JFrame("Ctrl Key Detector"); JTextField ...

    java-abstract-actions:使用 Java 的 AbstractActions 类在 Swing GUI 中实现命令模式的概念证明

    `AbstractAction`是`javax.swing.Action`接口的一个具体实现,提供了创建可复用行为的框架,这些行为可以绑定到按钮、菜单项等组件上。 **1. 命令模式介绍** 命令模式是一种设计模式,它将请求封装为一个对象,以便...

    java图形用户界面设计.doc

    - **实验原理**:使用`javax.swing`包中的组件和布局管理器来构建GUI。`JComponent`是所有Swing组件的基类,继承自`java.awt.Container`。`JFrame`和`JDialog`分别代表窗口和对话框,是`Window`类的子类。 5. **...

    ActionListener

    import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ActionListenerExample { public static void main(String[] args) { JFrame frame = new ...

    ComboboxReferat:AllesüberComboboxen

    2. **创建ComboBox**:在Java Swing中,可以使用`javax.swing.JComboBox`类来创建ComboBox。例如: ```java JComboBox&lt;String&gt; comboBox = new JComboBox(new String[]{"Option 1", "Option 2", "Option 3"}); ``...

Global site tag (gtag.js) - Google Analytics