我在互联网上做了一项研究,寻找教程/文档来解释如何在Java Gnome项目中使用Glade中设计的UI,但没有运气.我已经知道如何使用Java Gnome / GTK从代码创建UI.无论如何,我想使用我在Java Gnome / Gtk项目中创建的Glade UI,但我不知道从哪里开始.请告诉我:

>我需要安装哪些软件包;

>如何将我用Glade(.glade文件)创建的UI与我的Java Gnome / Gtk项目(特别是在Eclipse中)集成;

>举个例子.

提前致谢.

这就是我的Glade UI的外观(只需点击图片即可看到更大):

这是上面UI的XML代码:

False

center

True

False

162

25

True

True

start

end

11

49

162

25

True

True

start

end

True

271

49

25

True

False

*

216

49

Calculate!!!

False

84

27

True

True

True

False

181

93

解决方法:

好的,你需要:

> Init GTK库

>创建一个Builder对象

>检索窗口小部件

>显示窗口小部件

我假设您已经在Linux系统中安装了java-gnome库并在eclipse项目中导入了jar(项目属性 – java构建路径 – 添加外部jar – /usr/share/java/gtk.jar).

示例代码:

Gtk.init(args); //Init library

Builder b = new Builder(); //Create builder

b.addFromFile("filename.glade"); //Load layout from file

Window w = (Window) b.getObject("myWindowName"); //Retrieve an object

w.showAll(); //Show window

Gtk.main();

这是它应该工作的方式.如果要在对象上设置侦听器,例如按钮,您可以按照之前的窗口检索对象,然后:

button.connect(new Clicked() {

@Override

public void onClicked(Button arg0) {

// Do what you want

}

});

它适合你吗?嗯,这不适合我.

问题是我的代码在调用Builder.addFromFile(filename)时抛出异常

java.text.ParseException: Invalid object type `GtkLabel’

错误是关于树中的第一个元素.

经过深入研究后,我发现由于已知的bug从未修复过,您需要在使用之前预先定义每个小部件:在这种情况下只需调用

new Label();

在创建构建器之前.

显然,这不是以这种方式工作,并将在未来修复.

有关此问题的更多信息:

希望这可以帮助……

标签:ubuntu,java,user-interface,gtk,glade

来源: https://codeday.me/bug/20190529/1180040.html

glade java_如何在Java Gnome / GTK程序中使用Glade UI(.glade文件)?相关推荐

  1. 百家与g对比oogle_如何在Java Web应用程序中集成G​​oogle reCAPTCHA

    百家与g对比oogle I never liked Captchas because the burden was always on end user to understand the lette ...

  2. java swing暂停继续_如何在Java Swing应用程序中暂停/睡眠/等待?

    小编典典 Thread#sleep在 主 线程中的swing应用程序中使用method 会导致GUI冻结(因为该线程处于睡眠状态,因此无法发生事件).Thread#sleepSwing应用程序中的Sw ...

  3. java能不能播放mp4_如何在Java Swing应用程序中播放MP4视频

    感谢@VGR引起了我对JavaFX的关注,我将JFXPanel集成到了我想要视频放置的JPanel中.就我而言,它工作得很好,因为它是一个可以播放一个视频的简单屏幕. 以下是完整的代码段: priva ...

  4. java web超时提醒_如何在Java Web应用程序中动态设置会话超时?

    我需要给我的用户一个Web界面来更改会话超时间隔. 因此,Web应用程序的不同安装对其会话可以具有不同的超时,但是它们的web.xml不能相同. 您的问题很简单,您需要在运行时配置会话超时间隔,并且应 ...

  5. web csrf java_在Java Web应用程序中阻止CSRF

    web csrf java 跨站点请求伪造攻击(CSRF)在Web应用程序中非常常见,如果允许,可能会造成重大危害. 如果您从未听说过CSRF,建议您查看有关它的OWASP页面 . 幸运的是,阻止CS ...

  6. 如何在Spring Boot应用程序中使用配置文件

    你好朋友, 在本教程中,我们将学习如何在Spring Boot应用程序中使用配置文件. 我们将在本教程中讨论以下几点: 1.什么是Spring Boot Profile,为什么我们需要分析 2.如何使 ...

  7. 使用tinylog 1.1改进您在Java EE应用程序中的登录

    tinylog是Java的轻量级日志记录框架. 与Apache Log4j和Logback相反,tinylog由仅80KB的单个JAR文件组成,没有任何依赖性,并且具有静态logger类. 这意味着您 ...

  8. 在Java Web应用程序中阻止CSRF

    跨站点请求伪造攻击(CSRF)在Web应用程序中非常常见,如果允许,可能会造成重大危害. 如果您从未听说过CSRF,建议您查看有关它的OWASP页面 . 幸运的是,阻止CSRF攻击非常简单,我将向您展 ...

  9. node.js ejs_如何在Node.js应用程序中使用EJS模板

    node.js ejs by Jennifer Bland 詹妮弗·布兰德(Jennifer Bland) 如何在Node.js应用程序中使用EJS模板 (How to use EJS Templat ...

最新文章

  1. 连通性2 无向图的双连通 bcc
  2. VoIP系列:VoIP的劣势
  3. 职场中晋升最快的人具有什么特点?隐藏不住的四大特征
  4. linux查看进程号和进程
  5. 内部结构透视XRAY
  6. 使用Java操作文本文件的方法详解
  7. 使用Couchbase分页
  8. [置顶]       Jquery实现网页marquee效果
  9. c语言程序 数字时钟的设计,数字时钟C语言设计
  10. LVGL学习 lv_label
  11. 程序开发者的10大开源网站
  12. 李开复:几年内电子商务上市潮会来临
  13. 笛卡尔心形线 matlab,笛卡尔心形线
  14. Android实现录音功能及播放语音功能
  15. 富途出海淘金:泡沫翻涌 焦虑不止
  16. 架构师学习笔记(四)架构师线路之系统架构师企业架构师
  17. Android全面屏状态栏适配
  18. Elasticsearch:时间点 API
  19. hive表信息查询:查看表结构、表操作等(转)
  20. 工程技术人员以计算机为辅助工具,CAD,CAM建模方法与发展

热门文章

  1. 结对项目:自动生成小学四则运算题目程序
  2. 显示mapper找不到:Field xxxMapper in xxx required a bean of type ‘xxxMapper‘ that could not be found
  3. 什么是可重入锁?为什么需要可重入锁?
  4. PS 画笔 取消 圆角
  5. 如何选择条码标签打印软件?
  6. 06_《计算机安全原理与实践》访问控制
  7. 微信小程序input组件
  8. 字符串替换c语言you替代we,字符串替换_无以伦比的暖阳的技术博客_51CTO博客
  9. 各厂内推整理 | 第三期
  10. UTF-8编码中的特殊空格之C2 A0 -> NO-BREAK SPACE