`

Java Swing设计模式的代码示例

    博客分类:
  • java
 
阅读更多

 

//-- V.java类,用来做MVC设计模式中的表现

import java.awt.Container;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SpringLayout;

public class V {

   //Title

final private static String MENU_DLG_TITLE = "MVC";

// Frame
private JFrame frame = new JFrame(MENU_DLG_TITLE);

// Container
private Container con = frame.getContentPane();

Font font = new Font("test", 20, 20);

JLabel lable = new JLabel(font.getName());
JButton enlarge = new JButton("enlarge");
JButton abridge = new JButton("abridge");

public V() {
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   SpringLayout lay = new SpringLayout();
   con.setLayout(lay);

   lay.putConstraint(SpringLayout.WEST, lable, 120,SpringLayout.WEST, con);
   lay.putConstraint(SpringLayout.NORTH, lable, 180, SpringLayout.NORTH, con);

   lay.putConstraint(SpringLayout.WEST, enlarge, 80, SpringLayout.WEST, con);
   lay.putConstraint(SpringLayout.NORTH, enlarge, 380, SpringLayout.NORTH, con);

   lay.putConstraint(SpringLayout.WEST, abridge, 180, SpringLayout.WEST,con);
   lay.putConstraint(SpringLayout.NORTH, abridge, 380, SpringLayout.NORTH, con);

   con.add(lable);
   con.add(enlarge);
   con.add(abridge);

   C c = new C(this, new M());

   enlarge.addActionListener(c);
   abridge.addActionListener(c);

   frame.setBounds(520, 80, 300, 450);
   frame.setVisible(true);
}

public JButton getEnlarge() {
   return enlarge;
}

public void setEnlarge(JButton enlarge) {
   this.enlarge = enlarge;
}

public JButton getAbridge() {
   return abridge;
}

public void setAbridge(JButton abridge) {
   this.abridge = abridge;
}

public JFrame getFrame() {
   return frame;
}

public void setFrame(JFrame frame) {
   this.frame = frame;
}

public Container getCon() {
   return con;
}

public void setCon(Container con) {
   this.con = con;
}

public JLabel getLable() {
   return lable;
}

public void setLable(JLabel lable) {
   this.lable = lable;
}

}

//-- C.java类,用来做MVC设计模式中的控制器

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class C implements ActionListener{
private V v ;
private M m;

public C(V v,M m){
   this.v = v;
   this.m = m;
}

public void actionPerformed(ActionEvent e) {
  
   if (e.getSource() == v.getEnlarge()) {
    m.setSize(m.getSize() + 5);
    m.setStyle(m.getStyle() + 5);    
   }else{   
    m.setSize(m.getSize() - 5);
    m.setStyle(m.getStyle() - 5);
   }
  
   System.out.println("m.Style:" + m.getStyle());
   System.out.println("m.Size:" + m.getSize());
   Font font = new Font(v.getLable().getText(),m.getStyle(),m.getSize());
   v.getLable().setFont(font);

}

public V getV() {
   return v;
}

public void setV(V v) {
   this.v = v;
}

public M getM() {
   return m;
}

public void setM(M m) {
   this.m = m;
}
}

//-- M.java 用来做MVC设计模式中的Medel

public class M {

private static final long serialVersionUID = 1L;
private int size = 20;
private int style = 20;

public M() {
}

public int getSize() {
   return size;
}

public void setSize(int size) {
   this.size = size;
}

public int getStyle() {
   return style;
}

public void setStyle(int style) {
   this.style = style;
}

}

//-- Test.java 测试代码

public class Test {

public static void main(String[] args) {
   M m = new M();
   V v = new V();
   new C(v,m);
}
}

分享到:
评论

相关推荐

    基于设计模式的Java swing交互式界面模式的应用研究与实现

    方案做了一个示例程序,即利用swing类库和基于前面介绍的设计模式,以按钮 为例创建了一个界面生成器,该按钮生成器能按照用户输入的属性生成具有该属 性的swingYXL格的按钮,并且生成相应的java代码,用户也可以...

    详解Observer Pattern(观察者模式)在Java中的使用原理

    本人觉得该示例是对该模式的非常精典的说明,于是花点功夫来翻写它,因为他的代码没有注释说明该模式的设计思想怎样体现在代码中去,所以,本人结合代码注释了关键代码的中文意义说明作者怎样表示该设计模式的,以...

    Java源码包100个设计实例.zip

    JAVA版Swing星际争霸游戏源代码.rar Java生成密钥的实例 Java电子相册源码.rar Java目录监视器源程序.zip JAVA短信网关平台(值得一看).rar Java绘制图片火焰效果.rar Java编写的HTML浏览器.rar Java编写的山寨QQ,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java源码包---java 源码 大量 实例

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java源码包2

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包4

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包3

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    Java测试新技术TestNG和高级概念.part1

    包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的测试设计模式都会告诉您如何改进您的测试,对如何让代码和设计变得更可测试提供具体的建议。 目录: 第1章 起步 1.1 超越JUnit 3 1.2 ...

    Java SE实践教程 源代码 下载

    7.1.4 Swing和MVC设计模式 144 7.1.5 Swing的单线程模型 145 7.2 练习 148 7.2.1 第1个Swing程序 148 7.2.2 外观感觉 150 7.2.3 事件侦听器 151 7.2.4 Swing基本控件和窗口 155 7.2.5 Swing容器 176 7.2.6 ...

    Java测试新技术TestNG和高级概念.part2

    包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的测试设计模式都会告诉您如何改进您的测试,对如何让代码和设计变得更可测试提供具体的建议。 目录: 第1章 起步 1.1 超越JUnit 3 1.2 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义...

    java范例开发大全源代码

     8.3 面向对象的设计模式 241  实例156 Singleton单例模式 242  实例157 招聘(简单工厂模式) 243  实例158 同学聚会(工厂方法模式) 244  实例159 图书展(抽象工厂模式) 246  实例160 汽车...

    java图书馆swing源码-JavaSMQ:SMQJava和Android堆栈

    java图书馆swing源码Java ...修改示例代码(LedSMQ.java @ 第 42 行)并更改域 URL。 URL 应设置为您自己的 IoT 服务器。 Java SMQ 编译包含的 Java Swing 示例 这个例子是为 and 设计的。 还提供了一个 Android 示例

    Java范例开发大全 (源程序)

     8.3 面向对象的设计模式 241  实例156 Singleton单例模式 242  实例157 招聘(简单工厂模式) 243  实例158 同学聚会(工厂方法模式) 244  实例159 图书展(抽象工厂模式) 246  实例160 汽车适配器...

    Java简明教程

     本书的全部示例代码和电子教案PPT免费提供给教师参考。 目录 第1章 Java语言简介 第2章 数据类型、运算符和表达式 第3章 控制语句 第4章 Java的类 第5章 接口、包与泛型 第6章 字符串处理 第7章 异常处理 第8章 ...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义...

Global site tag (gtag.js) - Google Analytics