打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
试图窥探别人的隐私->Java注入技术

之前介绍了简单的注入方法,现在介绍 GUI的注入

一、使用包含技术修改GUI元素

       假设有一个窗体类 Ex1 extends JFrame   , 其标题为 Example #1 (Eval Version) ,现在想去掉不想要的内容,要求不使用反编译器,不重新编译源代码的情况下,我们可以使用包含技术(定义一个新类,调用Ex1的方)

定义类 Ex1

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

public class Ex1 extends JFrame implements ActionListener
{
 private JButton btnExit;

 public Ex1()
 {
  super("Example #1 (Eval Version)");
  Container c = getContentPane();
  btnExit = new JButton("Exit");
  btnExit.addActionListener(this);
  c.add(btnExit);
  pack();
  setVisible(true);
 }

 public void actionPerformed(ActionEvent ae)
 {
  setVisible(false);
  System.exit(0);
 }
}

 

下面制作我们的注入类 Helper

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

public class Helper implements ActionListener
{
 private static Ex1 ex = null;

 public void setTitle(String title) // 设置窗口标题
 {
  ex.setTitle(title);
 }

 public void setButtonText(String text)  // 获取按钮控件 并且设置文本以及事件监听程序
 {
  Container c = ex.getContentPane();
  int size = c.getComponentCount();
  for(int i=0;i<size;i++)
  {
   Component cc = c.getComponent(i);
   if( cc instanceof JButton )
   {
    ((JButton)cc).setText(text);
    ((JButton)cc).addActionListener(this);
    break;
   }
  }
 }

 public void actionPerformed(ActionEvent ae)
 {
  JOptionPane.showMessage(ex,"真的要退出吗?","Really?",0);
  setVisible(false);  
  System.exit(0);
 }

 public static void main(String args[])
 {
  Helper hp = new Helper();
  ex = new Ex1();
  ex.setVisible(false);
  // add my code
  hp.setTitle("Example #1");
  hp.setButtonText("Shit is good");
  // end my code
  ex.setVisible(true);
 }
}

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=660254

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《Java语言编程基础立体化实用教程》2-3 登录窗体的实现
界面窗口功能
论坛: Java 中关于选择文件夹对话框 ...
Java中如何关闭Frame窗口
在java中如何实现画图
如何在任务栏显示java程序图标
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服