从书上抄来的一个例子,很简单,但就是调不通,各位帮忙看看(100分)

  • 主题发起人 主题发起人 luaijun
  • 开始时间 开始时间
L

luaijun

Unregistered / Unconfirmed
GUEST, unregistred user!
是Jbuilder7下的一程序.编译可通过,但运行时窗体显示不出来?不知为什么,谢谢
代码如下:
package welcomtojbuilder6;
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;

/**
* <p>Title: 使用JBuilder制作欢迎屏幕</p>
* <p>Description: 本程序利用Jbuilder显示一幅图片作为欢迎屏幕</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class WelcomeWindow extends JWindow {
private JLabel jLabel1 = new JLabel();
private BorderLayout borderLayout1 = new BorderLayout();
public WelcomeWindow() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
WelcomeWindow welcomeWindow1 = new WelcomeWindow();
welcomeWindow1.show() ;
//setVisible(true);
}
private void jbInit() throws Exception {
jLabel1.setIcon(new ImageIcon(new java.net.URL("file:///C:/Mydo
cuments/桌面.jpg"))) ;
this.pack();
//此函数用于将JWindow大小设置为适应于jLabel
this.getContentPane().setLayout(borderLayout1);
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
});
this.getContentPane().add(jLabel1, BorderLayout.CENTER);
//得到屏幕大小的Dimension,与jLable 的大小比较后,将窗体设置在屏幕的正中央
Dimension screenSize=Toolkit.getDefaultToolkit() .getScreenSize() ;
Dimension labelSize=jLabel1.getPreferredSize();
//setLocation(screenSize.width/2-labelSize.width/2,screenSize.height/2-labelSize.height/2);
setLocation(300,400);
setVisible(true);//使窗体可见
}
void this_mousePressed(MouseEvent e) {
setVisible(false);
System.exit(0);
}
}

 
我以前做欢迎画面的时候,也出现这样的问题。JWindow默认是不可见的,所以要使用setVisable的方法使其可见,如果setVisable后,还是看不见欢迎窗口,通常是setLocation的问题了,如果还是看不见哦,就得加setSize(好象是这个名字)了,具体就是设置jwindow的大小了,我看你的程序里面并没有setSize()方法,加上去试试,will be ok!
祝你成功。[:)]
 
import javax.swing.*;
import java.awt.*;
//import com.borland.jbcl.layout.*;
import java.awt.event.*;

/**
* <p>Title: 使用JBuilder制作欢迎屏幕</p>
* <p>Description: 本程序利用Jbuilder显示一幅图片作为欢迎屏幕</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class WelcomeWindow extends JWindow {
private JLabel jLabel1 = new JLabel();
private BorderLayout borderLayout1 = new BorderLayout();
public WelcomeWindow() {
super();
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}

}
public static void main(String[] args) {
JWindow welcomeWindow1 = new WelcomeWindow();
System.out.println("test2");
welcomeWindow1.show();
//setVisible(true);
}
private void jbInit() //throws Exception {
{
jLabel1.setIcon(new ImageIcon("C:/Documents and Settings/Administrator/Mydo
cuments/My Pictures/样品.jpg")) ;
getContentPane().add(jLabel1, BorderLayout.CENTER);
pack();
//此函数用于将JWindow大小设置为适应于jLabel
//getContentPane().setLayout(borderLayout1);
//得到屏幕大小的Dimension,与jLable 的大小比较后,将窗体设置在屏幕的正中央
Dimension screenSize=Toolkit.getDefaultToolkit() .getScreenSize() ;
Dimension labelSize=jLabel1.getPreferredSize();
//setLocation(screenSize.width/2-labelSize.width/2,screenSize.height/2-labelSize.height/2);
setLocation(300,400);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
setVisible(false);
dispose();
}
});
System.out.println("test1");
setVisible(true);
}

}
现在可以了,你试试吧
 
加上setSize就可以了,如下所示:
public static void main(String[] args) {
WelcomeWindow welcomeWindow1 = new WelcomeWindow();
welcomeWindow1.setLocation(100,100);
welcomeWindow1.setSize(300,400);
welcomeWindow1.show();
//setVisible(true);
}
 
谢谢各位
WithDraw,你的方法还是回有问题,窗体仍然显示不出来
 
后退
顶部