好吧,我已经浏览了整个互联网,但却未能找到这个问题的答案,所以也许有人可以提供一些见解.

我正在开发一个相对简单的Java应用程序,它将取代目前用于系统访问请求的Word文档.它旨在允许表单输入新的员工雇用信息 – 名称,所需的访问权限等.

所以这是我的问题.尝试使用所有文本字段和所有内容制作GUI令人惊讶地痛苦.因为每个小部件有点不同,所以在填写表单后获取输入似乎需要为每个小部件单独引用,以便我可以单独调用它们.这意味着一个部分的每个面板有6-10个不同的私有字段. (我尝试将所有类似的小部件添加到列表中并在循环中调用它们,但这似乎不起作用.)

在某些方面,似乎Web表单更适合这种情况,但我没有可用的基础结构.有没有人找到比这更类似的更好的解决方案呢?它似乎只是一大堆代码.请参阅下面的一个想法(我提出了一些评论而不是实际的代码,因为它太长了).谢谢你的期待!

private JComboBox my_dates;

private JTextField my_date1;

private JTextField my_date2;

private JTextField my_request_date;

private JTextField my_new_legal_name;

private JTextField my_new_pref_name;

private JTextField my_new_username;

private JTextField my_prev_legal_name;

private JTextField my_prev_pref_name;

private JTextField my_prev_username;

private JTextField my_emp_id;

private JTextField my_manager;

private JTextField my_auth_requestor;

private JTextField my_auth_phone;

public NameChangePanel(FormSection the_section)

{

super();

initialize();

buildPanel(the_section.getFields());

}

private void initialize()

{

// Create all the widgets individuall

}

private void buildPanel(List the_fields)

{

// add a field label

// add a component

// repeat for all values

}

public List getFormValues()

{

// Call all of the private fields individually

return values;

}

}

解决方法:

Vanilla Swing很冗长 – 没有争论.基本上对于这种事情,我最终依赖于一堆本地生成的util / factory方法,比如createTextBox(),它们被参数化以供常用,并将执行必要的3-8语句.

我有时甚至会参数化布局.我倾向于将所有布局减少到GridBagLayout(其他人做BorderLayout等;这只是个人偏好的问题),然后创建方法,将控件放在网格中的特定点.

如果你不是基于网络的,我会坚持使用Swing.它可能很冗长,但对于一个简单的形式来说并不是那么困难.

标签:java,user-interface,swing

来源: https://codeday.me/bug/20190717/1485554.html

java GUI怎么输入_在Swing中创建Java GUI以进行表单输入相关推荐

  1. python不满足条件重新输入_如果Python中不满足条件,则拒绝用户输入

    我知道这个问题和我已经问过的问题很相似,但它是一个扩展,因此它有自己的空间 我是一个Python新手,编写一个代码,它从用户那里获取输入,然后将用户输入存储在数组中(以后再做更多的工作),前提是满足两 ...

  2. java osgi web开发_在Tomcat中使用Java Web应用程序的OSGi软件包

    我试图从Java Web应用程序调用OSGi包的方法.两者都应该在Tomcat 7上运行. 我已经写了一个正常的Java应用程序,它调用OSGi软件包中的方法,如本站所述:http://drupal. ...

  3. hadoop创建java项目的步骤_为 Apache Hadoop 创建 Java MapReduce - Azure HDInsight | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 为 HDInsight ...

  4. python网页提交表单_使用Python中的POST请求通过网站表单上传基本文件

    我尝试使用Python和HTTP请求在一个随机的网站上上传一个文件.为此,我使用名为Requests的便利库. 根据the documentation,以及StackOverflow here和the ...

  5. java applet 嵌入网页_在网页中插入Java Applet

    Java Applet 是一种允许开发并可以嵌入Web页面的编程语言.Java Applet 小程序是在Java 的基础上演变而成的应用程序,可以嵌入到网页中用来执行一定的任务. 语法: 举例: 插入 ...

  6. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  7. java数字拼图代码_实战-Swing实现数字拼图

    实战-Swing实现数字拼图 1 Swing实现数字拼图 我们可以借助Swing和事件处理功能来开发Java数字拼图游戏.让我们看看在Java中创建Java数字拼图游戏的代码. package com ...

  8. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

  9. 在VScode中创建Java项目

    在VScode中创建Java项目 1. 配置SDK环境 2.在vscode中下载Java插件 之前使用过idea或者其他IDE编写Java已经下载并配置好了sdk,可以直接跳转到第二步.没有配置过sd ...

最新文章

  1. 案例 | 杭州佰勤医疗器械:智办事助力企业组织数字化转型
  2. qstringlist格式怎么写到txt_进阶能力 | 一招解决TXT电子书乱码问题
  3. URLEncoder.encode转译后“空格”变“加号”的问题的解决方案
  4. POJ 2752 同一个串的前后串
  5. 在lamp环境实现nfs中的wordpress使用
  6. Tableau实战系列如何在阿里云Linux服务器上安装 Tableau Server
  7. 我的一些项目管理经验
  8. 【数据结构】排序算法及优化整理
  9. 重新开始我的园子生活了
  10. elementui 如何修改表格里面cell的样式
  11. 让Spring架构减化事务配置(转)
  12. 关于webstorm 配置 banbel
  13. 【LeetCode笔记】剑指 Offer 55 - II. 平衡二叉树(递归、二叉树)
  14. pycharm快捷键_春节快结束了回单位途中总结下pycharm快捷键
  15. 在easyui中如何使用ajax请求数据,Ajax 中正常使用jquery-easyui (转)
  16. Oracle 11g R2 Rman备份与恢复
  17. mysql定时备份脚本
  18. SE Block (Sequeze and Excitation)
  19. 下一个十年:数据信仰与认知智能
  20. ROC曲线的通俗理解

热门文章

  1. c++排序算法ppt_C/C++学习教程:C语言排序算法—插入排序算法
  2. 基于几何距离的椭圆拟合
  3. 计算机类公务员如何提升自己,大学毕业才发现:所学专业对考公务员如此重要,4类专业上岸率高...
  4. 为什么用python写爬虫_python-做爬虫,如何避免牢狱之灾
  5. php 判断是否文件,利用PHP判断文件是否为图片的方法总结
  6. 如何使用python效率_Python的5中提高效率的用法
  7. python3.6.5怎么下载_windows下如何下载并安装Python 3.6.4 ?
  8. Stream流思想和常用方法
  9. P4592 [TJOI2018]异或 (可持久化Trie)
  10. matplotlib 第二次执行报错在 django web服务中