Swing组件都采用MVC设计模式

Swing组件都采用MVC(Model-View-Controller,既模型-视图-控制器)设计模式,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,允许程序员自定义Render来改变GUI组件的显示外观,提供更多的灵活性。

  1 package Com.SwingTest;
  2 
  3 
  4 
  5 import javax.swing.*;
  6 import java.awt.*;
  7 import java.awt.event.ActionEvent;
  8 import java.awt.event.ActionListener;
  9 import java.awt.event.KeyEvent;
 10 import java.net.*;
 11  
 12 public class SwingText_10 extends JFrame {
 13     public SwingText_10() {
 14         setTitle("游戏宝典");
 15         setBounds(650, 350, 665, 445);
 16         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 17         Container container = getContentPane();
 18         // setLayout(null);
 19         setLayout(new BorderLayout());
 20         JPanel p1 = new JPanel();
 21         JPanel p2 = new JPanel();
 22         JLabel bxx = new JLabel("borter right@");
 23         JButton bx1 = new JButton("出装");
 24         JButton bx2 = new JButton("铭文");
 25         JButton bx3 = new JButton("打法");
 26         p2.add(bx1);
 27         p2.add(bx2);
 28         p2.add(bx3);
 29         p1.add(bxx);
 30         this.add(BorderLayout.SOUTH, p1);
 31         bxx.setBackground(Color.white);
 32         Icon i = new ImageIcon("2.jpg");
 33         JLabel l = new JLabel();
 34         l.setIcon(i);
 35         container.add(l);
 36         JMenuBar m = new JMenuBar();
 37         setJMenuBar(m);
 38         // 英雄类型
 39         JMenu m1 = new JMenu("刺客(A)");
 40         JMenu m2 = new JMenu("战士(B)");
 41         JMenu m3 = new JMenu("射手(C)");
 42         JMenu m4 = new JMenu("法师(D)");
 43         JMenu m5 = new JMenu("辅助(E)");
 44         JMenu m6 = new JMenu("坦克(F)");
 45         // 英雄单位
 46         JMenu n1 = new JMenu("那可露露(O)");
 47         JMenu n2 = new JMenu("李白(P)");
 48         JMenu n3 = new JMenu("橘右京(Q)");
 49         JMenu n4 = new JMenu("关羽(O)");
 50         JMenu n5 = new JMenu("赵玉(P)");
 51         JMenu n6 = new JMenu("刘备(Q)");
 52         // 关羽攻略
 53         JMenuItem n31 = new JMenuItem("出装(U)");
 54         JMenuItem n32 = new JMenuItem("铭文(V)");
 55         JMenuItem n33 = new JMenuItem("打法(W)");
 56         // 李白攻略
 57         JMenuItem n21 = new JMenuItem("人生(U)");
 58         JMenuItem n22 = new JMenuItem("技能(V)");
 59         JMenuItem n23 = new JMenuItem("打法(W)");
 60         JMenuItem n24 = new JMenuItem("出装(X)");
 61         JMenuItem n25 = new JMenuItem("铭文(Y)");
 62         JMenuItem n26 = new JMenuItem("选手(Z)");
 63  
 64         // 绑定快捷键
 65         n21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.CTRL_MASK));
 66         n22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
 67         n23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, ActionEvent.CTRL_MASK));
 68         n24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK));
 69         n25.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y, ActionEvent.CTRL_MASK));
 70         n26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
 71  
 72         // 英雄类型
 73         m.add(m1);
 74         m.add(m2);
 75         m.add(m3);
 76         m.add(m4);
 77         m.add(m5);
 78         m.add(m6);
 79         // 刺客英雄
 80         m1.add(n1);
 81         m1.add(n2);
 82         m1.add(n3);
 83         // 战士英雄
 84         m2.add(n4);
 85         m2.add(n5);
 86         m2.add(n6);
 87         // 关羽攻略
 88         n4.add(n31);
 89         n4.add(n32);
 90         n4.add(n33);
 91         // 李白攻略
 92         n2.add(n21);
 93         n2.add(n22);
 94         n2.add(n23);
 95         n2.add(n24);
 96         n2.add(n25);
 97         n2.add(n26);
 98         // --菜单栏->战士->关羽->出装
 99         n31.addActionListener(new ActionListener() {
100             @Override
101             public void actionPerformed(ActionEvent arg0) {
102                 // TODO Auto-generated method stub 铭文
103                 Icon i1 = new ImageIcon("src/关羽经典.png");
104                 JLabel l1 = new JLabel();
105                 l1.setIcon(i1);
106                 Icon i2 = new ImageIcon("src/关羽出装.png");
107                 JLabel l2 = new JLabel();
108                 l2.setIcon(i2);
109                 JDialog dialog = new JDialog();// 创建当前窗体的对话框
110                 dialog.setLayout(new GridLayout(2, 1, 5, 5));
111                 dialog.add(l1);
112                 dialog.add(l2);
113                 dialog.setModal(true);// 设置对话框为模态
114                 dialog.setSize(354, 200);// 设置对话框大小
115                 dialog.setLocationByPlatform(true);// 由系统平台布置窗体位置
116                 dialog.setTitle("关羽出装推荐");// 对话框标题
117                 dialog.setVisible(true);// 显示对话框
118             }
119         });
120         // --菜单栏->战士->关羽->铭文
121         n32.addActionListener(new ActionListener() {
122             @Override
123             public void actionPerformed(ActionEvent arg0) {
124                 // TODO Auto-generated method stub 铭文
125                 Icon i1 = new ImageIcon("src/na.jpg");
126                 JLabel l1 = new JLabel();
127                 l1.setIcon(i1);
128                 Icon i2 = new ImageIcon("src/122.png");
129                 JLabel l2 = new JLabel();
130                 l2.setIcon(i2);
131                 JDialog dialog = new JDialog();// 创建当前窗体的对话框
132                 dialog.setLayout(new GridLayout(2, 1, 5, 5));
133                 dialog.add(l1);
134                 dialog.add(l2);
135                 // dialog.setBackground(Color.gray);
136                 dialog.setModal(true);// 设置对话框为模态
137                 dialog.setSize(500, 400);// 设置对话框大小
138                 dialog.setLocationByPlatform(true);// 由系统平台布置窗体位置
139                 dialog.setTitle("铭文推荐");// 对话框标题
140                 dialog.setVisible(true);// 显示对话框
141             }
142         });
143         // --菜单栏->战士->关羽->打法
144         n33.addActionListener(new ActionListener() {
145             @Override
146             public void actionPerformed(ActionEvent arg0) {
147                 // TODO Auto-generated method stub 铭文
148                 Icon i1 = new ImageIcon("2.jpg");
149                 JLabel l1 = new JLabel();
150                 l1.setIcon(i1);
151                 Icon i2 = new ImageIcon("2.jpg");
152                 JLabel l2 = new JLabel();
153                 l2.setIcon(i2);
154                 JDialog dialog = new JDialog();// 创建当前窗体的对话框
155                 dialog.setLayout(new GridLayout(2, 1, 10, 10));
156                 dialog.add(l1);
157                 dialog.add(l2);
158                 dialog.setModal(true);// 设置对话框为模态
159                 dialog.setSize(500, 400);// 设置对话框大小
160                 dialog.setLocationByPlatform(true);// 由系统平台布置窗体位置
161                 dialog.setTitle("铭文推荐");// 对话框标题
162                 dialog.setVisible(true);// 显示对话框
163             }
164         });
165  
166         setVisible(true);
167     }
168  
169     public static void main(String[] args) {
170         new SwingText_10();
171     }
172 }

 

posted @ 2018-07-31 18:30  borter  阅读(1165)  评论(0编辑  收藏  举报