Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:线程中打开对话框,对话框中的控件为什么不能使用? [Re:sunmoon]
sunmoon





发贴: 32
积分: 0
于 2003-09-08 09:05 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
终于找到是模式对话框的关系,但还是不知道该如何解决

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_actionPerformedEnvelope;
}

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_actionPerformedEnvelope;
}
}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

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();
}

}

}




话题树型展开
人气 标题 作者 字数 发贴时间
3532 线程中打开对话框,对话框中的控件为什么不能使用? sunmoon 34 2003-09-04 18:36
2666 Re:线程中打开对话框,对话框中的控件为什么不能使用? jbwang 2 2003-09-04 20:33
2628 Re:线程中打开对话框,对话框中的控件为什么不能使用? snowbug 38 2003-09-06 04:01
2763 Re:线程中打开对话框,对话框中的控件为什么不能使用? sunmoon 5746 2003-09-08 09:05

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923