我建议这样:
MainFram 不需要多线程,你的监听器和MainFram 可以通过观察者模式实现监听和界面及时显示的功能,在MainFram 的事件中repaint FRAME即可
MainFram 不需要多线程,你的监听器和MainFram 可以通过观察者模式实现监听和界面及时显示的功能,在MainFram 的事件中repaint FRAME即可
解决方案 »
- 关于MyEclipse(Maven管理)发布web项目到tomcat
- servlet路径
- Structs1.2 数据库配置出错 (100分) Cannot create JDBC driver of class 'COM.ibm.db2.jdbc.app.DB2Driver' for ..
- Java垃圾回收机制中对象引用遍历的实现原理
- 关于XML文件用XSD验证出错的问题
- 省、市、县 三级问题(在线等。急~~~)
- 使用JBuilder9与Weblogic开发一个简单Entity Bean遇到德问题,希望大家指点下呀(在线)
- JDO,OJB,Hibernate 讨论区
- 项目中出现的问题,在action中调用服务层方法时出错,请帮忙看看 谢谢
- 使用Java CORBA实现迭代法求平方根
- struts2中的传值问题,求解
- spring和hibernate整合过程出错
/*
* MainFrame.java
*
* Created on __DATE__, __TIME__
*/package learning.swing;/**
*
* @author __USER__
*/
public class MainFrame extends javax.swing.JFrame { private String content="no content";
private ListenerClass listener;//你的监听类
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
} /** Creates new form MainFrame */
public MainFrame() {
initComponents();
}
public MainFrame(ListenerClass listener) {
initComponents();
this.listener=listener;//注册
}
public void refresh(String text){
this.setContent(text);
jTextArea1.setText(this.content);
repaint();
} /** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jTextArea1.setText(this.content); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1); getContentPane().add(jScrollPane1,java.awt.BorderLayout.CENTER); pack();
}// </editor-fold>
//GEN-END:initComponents /**
* @param args the command line arguments
*/
public static void main(String args[]) {
MainFrame testtt=new MainFrame();
ListenerClass test=new ListenerClass();
test.register(testtt);
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
testtt.setVisible(true);
}
});
} //GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration//GEN-END:variables}监听类
public class ListenerClass{
MainFrame frame=null; public ListenerClass(){
} public void register(MainFrame frame){
this.frame=frame;
}
public eventOccur(){//事件触发
this.frame.refresh("change text");
}
}之后执行eventOccur()就应该可以了
java api 提供Java.util.Observer接口
System.out.println("一个图形界面!");
} private static JbInit instance = new JbInit(); public static JbInit getInstance() {
return instance;
}
}
调用时 JbInit.getInstance()保证只实现一个JbInit实例。