0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术在低成本工控主板上开发Java图形应用程序

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-06 11:17 次阅读

随着互联网技术的快速发展,Java语言以其简单可靠,安全性高,可移植性强等特点得到极大普及,长期占据编程语言排行榜第一的位置,特别是在嵌入式领域得到了越来越多的应用。为了满足客户在嵌入式主板上运行Java程序的需求,英创公司在ESM335x、ESM6800等主流产品型号中移植了针对嵌入式Linux的JRE(Java Runtime Environment),以支持常规的Java通讯、控制类程序的运行。JRE的运行需要占用的内存超过100MB,英创公司的低成本嵌入式主板ESM6800H和ESM6800V即可满足Java虚拟机对硬件环境的要求。进一步,ESM6800H和ESM6800V这二款型号的主板还可以支持X11图形系统。在X11图形系统的环境中,就可以直接通过Java的图形用户接口实现图形界面的开发,其开发过程类似于WinCE+C#,这样就弥补了ESM6800没有WinCE系统,从而不能使用C#开发界面的遗憾。

Java的图形用户接口可以让用户构建一个通用的界面,使其在所有平台上都能正常显示,Java构建界面要使用抽象窗口工具包AWT(Abstract Window Toolkit)和Swing。Swing可以看作是AWT的改良版,而不是代替AWT,是对AWT的提高和扩展。所以,在实现界面的程序中,Swing和AWT都要用到,它们共存于Java基础类(Java Foundation Class,JFC)中。用户通过英创公司提供的eclipse软件就能够完成图形界面程序的开发。环境搭建的详细方法可以参考文章:《英创主板JAVA应用开发简介》。本文主要简要介绍何如使用Java实现图形界面。

Java的图形接口组件按其作用可分为基本组件(Component)和容器(Container)两大类:基本组件,不能容纳其他组件,如按钮、文本框等图形界面元素。容器可以用来容纳其他的组件,如窗口、对话框等,下面是常用组件的列表。

组件名称 组件简介
JTextField 单行文本框,为用户处理输入信息
JTextArea 多行文本框,为用户处理输入信息
JButton 按钮类,为用户提供具有文本和图标的按钮
JLabel 标签,为用户提供包含说明性文本和图标
JCheckBox 复选框,为用户提供多项选择
JRadioButton 单选按钮,为用户提供单项选择
JComboBox 组合框,为用户提供下拉菜单
JPasswordField 密码框,允许输入单行密码,密码框默认回显字符是“*”

图形窗口一般是上述各个组件的承载体,处于非常重要的位置,在JAVA中常用的窗体包括JFrame和JDialog这两种形式。

窗体名称 简介
JFrame 框架窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮
JDialog 对话框基类,为用户提供构造并管理通用对话框

我们以串口通讯为例,通过Java实现一个简单的串口测试界面。

窗口是图形界面的基础,所有用户设计的可视组件都是放在窗口中的,所以首先我们需要构建一个窗口,下面我们就使用框架窗口(JFrame)来构建一个窗口对象:

public class MainGui extends JFrame {

public MainGui() {

setSize(800, 480);

setTitle("串口测试程序");

setLocationRelativeTo(null);

setDefaultCloseOperation(MainGui.EXIT_ON_CLOSE);

setVisible(true);

}

}

我们给窗口取名为“串口测试程序”,接下来我们在串口上增加提供打开串口操作、关闭串口操作和发送数据的按钮,按钮(JButton)在界面中用于触发动作事件,按钮上可以显示文本,当按钮动作时,能触发动作事件,按钮动作事件的相关接口类是ActionListener, 构建按钮的部分代码如下:

class RightPanel extends JPanel {

public RightPanel() {

this.setLayout(new GridLayout(13, 1, 0, 5));

JButton button_open = new JButton("打开串口");

JButton button_write = new JButton("发送");

JButton button_close = new JButton("关闭串口");

button_open.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

mes = tty + ":" + baud + "-8-1-0";

exitflag = true;

if(Serial_Port.openport(mes.toString()) == -1)

JOptionPane.showMessageDialog(null,"open fail!","消息框",JOptionPane.YES_OPTION);

button_open.setEnabled(false);

button_write.setEnabled(true);

button_close.setEnabled(true);

}

});

button_write.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String strs = textPane.getText();

String send_buf = ToolsFunc.formatHexString(strs);

System.out.print(send_buf.length());

if(send_buf.length() > 1)

{

System.out.println(send_buf);

Serial_Port.writeport(strs);

}

}

});

button_close.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

Serial_Port.closeport();

button_open.setEnabled(true);

button_write.setEnabled(false);

button_close.setEnabled(false);

}

});

add(button_open);

add(button_write);

add(button_close);

button_open.setEnabled(true);

button_write.setEnabled(false);

button_close.setEnabled(false);

}

}

接下来我们为串口的接受和发送的数据添加两个显示区域,可以选择文本框(JTextField)和文本区(JTextArea)来实现,文本框与文本区的主要区别是文本区可存放多行文本。在这里我们选用文本区来实现,并用GridBagLayout进行两个文本区的布局管理,构建文本区的部分代码如下:

class CenterPanel extends JPanel {

public CenterPanel() {

GridBagLayout layout = new GridBagLayout();

GridBagConstraints s= new GridBagConstraints();

this.setLayout(layout);

textField = new JTextArea(20, 50);

textField.setTabSize(4);

textField.setLineWrap(true);

textField.setEditable(false);

JScrollPane jscrollPane = new JScrollPane(textField);

textPane = new JTextArea(1, 50);

textPane.setCursor(new Cursor(Cursor.TEXT_CURSOR));

JScrollPane jscrollPane_1 = new JScrollPane(textPane);

textPane.setLineWrap(true);

this.add(jscrollPane);

this.add(jscrollPane_1);

s.gridwidth=0;

s.weightx = 0.5;

s.ipady = 320;

s.ipadx = 640;

s.weighty=0.8;

layout.setConstraints(jscrollPane, s);

s.gridwidth=0;

s.weightx = 0.5;

s.ipady = 10;

s.weighty=0.1;

layout.setConstraints(jscrollPane_1, s);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11285

    浏览量

    209273
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35292
收藏 人收藏

    评论

    相关推荐

    SSM框架在Java开发中的应用 如何使用SSM进行web开发

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web开发中常用的技术栈。它通过分层架构,实现了视图、控制、业务逻辑和数据访问的分离,提高了代码的可维护性和可扩展性
    的头像 发表于 12-16 17:28 311次阅读

    国产工控主板有什么优势、特点?

    随着国产工控主板的发展,国内企业也不断开发新的工控主板,为了满足国内企业的发展需求,一些国产
    的头像 发表于 11-15 10:11 121次阅读

    ​什么是国产工控主板,国产工控主板的特点有哪些?

    什么是国产工控主板呢?国产工控主板是工业计算机的主板,是一种计算机系统的硬件设备,是专门为工业控制场景设计和生产的电路板。它在国内的研发和制
    的头像 发表于 11-07 10:29 166次阅读

    国产工控主板,信产业发展新引擎

    在当今科技飞速发展的时代,信产业正成为国家战略的重要支撑。而我们的国产工控主板,以其卓越的性能和可靠的品质,为信产业的发展注入强大动力。国产工控
    的头像 发表于 11-06 10:29 202次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    近日,由中国电子信息行业联合会主办的第二十六届中国国际软件博览会(简称“软博会”)天津国家会展中心成功举行。在此次盛会上,中国电子信息行业联合会发布了“2024年软件和信息技术服务企
    的头像 发表于 10-30 11:44 451次阅读

    工控主板有哪些特点?

     工控主板是用于工业控制领域的专用主板,具有以下特点: 稳定性:工控主板通常经过严格的测试和优化,具有较高的稳定性和可靠性,能够
    的头像 发表于 10-10 08:55 284次阅读

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 376次阅读

    TM4C MCU用FreeRTOS开发通用应用程序应用说明

    电子发烧友网站提供《TM4C MCU用FreeRTOS开发通用应用程序应用说明.pdf》资料免费下载
    发表于 09-11 14:15 0次下载
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用FreeRTOS<b class='flag-5'>开发</b>通用<b class='flag-5'>应用程序</b>应用说明

    工控主板环保智能设备中的应用

    工控主板环保智能设备中的应用,对于环境监测、资源管理、污染控制等方面起到了至关重要的作用。以下是工控主板
    的头像 发表于 07-17 15:54 314次阅读
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>在</b>环保智能设备中的应用

    华纳云:java web和java有什么区别java web和java有什么区别

    Java Web和Java是两个不同的概念,它们功能、用途和实现方式存在一些区别,下面将详细介绍它们之间的区别。 1. 功能和用途: – Jav
    的头像 发表于 07-16 13:35 779次阅读
    华纳云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么区别<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么区别

    使用工控主板时该注意哪些事项?

    最近大家都在频繁问一个问题就是工控主板什么人为情况下容易出现故障,从而造成工控主板的损坏,那今天小编就来讲讲,我们
    的头像 发表于 06-05 16:01 397次阅读
    使用<b class='flag-5'>工控</b><b class='flag-5'>主板</b>时该注意哪些事项?

    工控主板容易出现故障的原因有哪些?

    最近大家都在频繁问一个问题就是工控主板什么人为情况下容易出现故障,从而造成工控主板的损坏,那今天小编就来讲讲,我们
    的头像 发表于 05-17 10:57 368次阅读

    工控主板和普通主板的区别有哪些

    工控主板和普通主板是两种计算机硬件领域中常见的主板类型,它们设计、功能和用途上有着明显的区别
    的头像 发表于 04-25 16:54 1264次阅读
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>和普通<b class='flag-5'>主板</b>的区别有哪些

    购买工控主板的三大误区

    最近有很多人问我什么样的工控主板算好的,有没有一个统一的标准。工控主板作为整机的核心组成部分,性能稳定上有着至关重要的作用,那今天小编就来
    的头像 发表于 04-16 16:40 331次阅读

    RX78M组 EtherCAT ETG.5003示例程序固件信息技术

    电子发烧友网站提供《RX78M组 EtherCAT ETG.5003示例程序固件信息技术.pdf》资料免费下载
    发表于 02-21 14:22 1次下载
    RX78M组  EtherCAT ETG.5003示例<b class='flag-5'>程序</b>固件<b class='flag-5'>信息技术</b>