质疑一次编译到处运行

caigua 2005-09-23 08:25:14
看了一些书,知道awt在不同平台下回出问题,我就尽量使用swing,这次在xp下用虚拟机启动了linux(

fedora),然后运行,竟然报错
报错信息如下:
(.:3104): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to

`GtkWidget'

(.:3104): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed

以下是我的源文件,其实,很简单,就是在一个JDialog容器中放了一个JFilechooser,将其显示出来,

刚刚看了一些文章,说ibm发现swing漏洞百出,没有办法才自己开发了swt,看来好像真的是这个样子的



我的代码如下:
//file:Jd1.java
/*
* 创建日期 2005-9-23
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package field.ui;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.io.File;
public class Jd1 {
public static void main(String [] args){
System.out.println("ffffffff");
Jd1 jd1 = new Jd1();
}
//private StartFrame1 sf = null;
private File file1 = null;
public Jd1(){
this.jDialog = this.getJDialog();
this.jDialog.setVisible(true);
//this.sf = sf1;
}
private JDialog jDialog = null; // @jve:decl-index=0:visual-constraint="45,5"
private JPanel jContentPane = null;
private JFileChooser jFileChooser = null;
private JFileChooser getJFileChooser(){
if(this.jFileChooser == null){
this.jFileChooser = new JFileChooser();
jFileChooser.addActionListener(new java.awt.event.ActionListener()

{
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
file1 = jFileChooser.getSelectedFile();
jDialog.setVisible(false);
}
});
}
return this.jFileChooser;
}
/**
* This method initializes jDialog
*
* @return javax.swing.JDialog
*/
private JDialog getJDialog() {
if (jDialog == null) {
jDialog = new JDialog();
jDialog.setSize(new java.awt.Dimension(419,285));
jDialog.setTitle("Select File");
jDialog.setContentPane(getJContentPane());
}
return jDialog;
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(this.getJFileChooser(),BorderLayout.CENTER);
}
return jContentPane;
}

}

...全文
208 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
caigua 2005-09-24
  • 打赏
  • 举报
回复
我知道,linux下肯定能用的,就那么个小问题就不能用,swing未免也太脆弱了,有哪位大侠,帮忙看看,为何这个代码在winxp下可以用,在linux下却不行呢?
femalelover 2005-09-24
  • 打赏
  • 举报
回复
如果是我写,没得到处***,因为我就会在WINDOWS下看看电影.其他系统没用过!!
caigua 2005-09-24
  • 打赏
  • 举报
回复
为何在windows下可以正常运行呢?
milkman 2005-09-24
  • 打赏
  • 举报
回复
java的图形是比较滥的东西,好像没人会用java开发窗口程序吧。
所谓swt好像也是用其他语言(c?)画图,然后通过java native interface调用来实现的。所以看上去Eclipse这个用java开发的东西和自己写的swing程序很不一样的原因。
wrongagain98 2005-09-23
  • 打赏
  • 举报
回复
有道理!如果是我写,就是:
一次编写,到处失败。
doway 2005-09-23
  • 打赏
  • 举报
回复
说法是成立的,关键看写代码的是谁。如果是我写,那就是:

一次“编写”,到处调试。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧