sunmoon
发贴: 32
积分: 0
|
于 2003-09-08 09:05
终于找到是模式对话框的关系,但还是不知道该如何解决
import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class MsgTestFrame extends JFrame { public static MsgTestFrame frame; private JButton jButton1 = new JButton();
public MsgTestFrame() { try { frame = this; jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { jButton1.setBounds(new Rectangle(93, 99, 181, 75)); jButton1.setText("test"); jButton1.addActionListener(new MsgTestFrame_jButton1_actionAdapter(this)); this.getContentPane().setLayout(null); this.getContentPane().add(jButton1, null); }
void jButton1_actionPerformed(ActionEvent e) { Dlg dlg = new Dlg(); dlg.show(); } }
class MsgTestFrame_jButton1_actionAdapter implements java.awt.event.ActionListener { MsgTestFrame adaptee;
MsgTestFrame_jButton1_actionAdapter(MsgTestFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed; }
public static void main( String args[] ){ MsgTestFrame f = new MsgTestFrame(); f.show(); }
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
import java.awt.*; import javax.swing.*; import java.awt.event.*;
public class Dlg extends JDialog { JButton jButton1 = new JButton(); public Dlg() { try { jbInit(); setModal(true); // !!!!!!! } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { jButton1.setBounds(new Rectangle(117, 103, 148, 57)); jButton1.setText("do....."); jButton1.addActionListener(new Dlg_jButton1_actionAdapter(this)); this.getContentPane().setLayout(null); this.getContentPane().add(jButton1, null); }
void jButton1_actionPerformed(ActionEvent e) { Thread t = new Thread(new Runnable(){ public void run(){ Msg msg = new Msg(); msg.open();
for ( int i = 0; i < 1000; i++ ) { System.out.println("do"); }
msg.close();
Dialog1 d = new Dialog1( MsgTestFrame.frame, "Dialog1", true ); d.show(); } }); t.start();
}
}
class Dlg_jButton1_actionAdapter implements java.awt.event.ActionListener { Dlg adaptee;
Dlg_jButton1_actionAdapter(Dlg adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed; } }
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
import java.awt.*; import javax.swing.*;
public class Dialog1 extends JDialog { JPanel panel1 = new JPanel(); JTextField jTextField1 = new JTextField(); JLabel jLabel1 = new JLabel(); JButton jButton1 = new JButton();
public Dialog1(Frame frame, String title, boolean modal) { super(frame, title, modal); try { jbInit(); pack(); } catch(Exception ex) { ex.printStackTrace(); } }
public Dialog1() { this(null, "", false); } private void jbInit() throws Exception { panel1.setLayout(null); this.getContentPane().setLayout(null); panel1.setBounds(new Rectangle(0, 0, 400, 300)); jTextField1.setText("jTextField1"); jTextField1.setBounds(new Rectangle(199, 43, 138, 42)); jLabel1.setText("jLabel1"); jLabel1.setBounds(new Rectangle(44, 40, 124, 45)); jButton1.setBounds(new Rectangle(115, 153, 153, 58)); jButton1.setText("jButton1"); getContentPane().add(panel1, null); panel1.add(jTextField1, null); panel1.add(jLabel1, null); panel1.add(jButton1, null); } }
。。。。。。。。。。。。。。。。。。。。。。。。。。。
import java.awt.*; import javax.swing.*;
public class Msg{ private static final String DEFAULT_MESSAGE = " wait please ............."; private JWindow j_window; private JPanel j_panel; private JLabel j_label; private String j_strMsg;
public Msg(){ this( DEFAULT_MESSAGE ); }
public Msg( String strMessage ){ j_strMsg = strMessage; j_window = new JWindow(); j_panel = new JPanel();
j_label = new JLabel( j_strMsg ); j_label.setFont( new Font( "Dialog", 0, 14 ) );
j_panel.setBorder( BorderFactory.createRaisedBevelBorder() ); j_panel.add( j_label, BorderLayout.CENTER ); j_panel.validate();
j_window.getContentPane().add( j_panel, BorderLayout.CENTER ); j_window.getContentPane().validate();
j_label.setHorizontalAlignment( JLabel.CENTER ); j_label.setPreferredSize( new Dimension( 320, 18 ) ); j_window.setSize( new Dimension( 320, 18 ) ); j_window.requestFocus(); j_window.setCursor( Cursor.getPredefinedCursor ( Cursor.WAIT_CURSOR ) );
Dimension screenSize = Toolkit.getDefaultToolkit(). getScreenSize(); Dimension windowSize = j_window.getSize(); j_window.setLocation( ( screenSize.width - j_window.getWidth() ) / 2, ( screenSize.height - j_window.getHeight() ) / 2 ); j_window.pack(); }
public void open(){ j_label.setText( j_strMsg ); j_window.show(); }
public void close(){ if ( j_window != null ) { j_window.setCursor( Cursor.getPredefinedCursor ( Cursor.DEFAULT_CURSOR ) ); j_window.dispose(); }
}
}
|