Java Swing 组件的名称约定(前缀)

2022-09-04 05:17:36

在Java中使用Swing编程时,我想到的一个问题是,它是Swing组件上的建议还是“官方”/最常用的命名约定(前缀)。

例如(即使其他人可能更喜欢其他命名约定,这就是我目前正在使用的):

  • txt for JTextField
  • btn for JButton
  • lbl for JLabel
  • pnl for JPanel

但后来我的清单结束了。

我认为这样的前缀增强了我的代码的可读性,但是我没有任何组件的名称,例如JComboBox,JList,JRadioButton,JCheckButton等等。

提前致谢。


答案 1

人们会告诉你,使用前缀是不好的,因为那是匈牙利语表示法,现在,匈牙利语表示法在编程中被认为是一个很大的禁忌。就个人而言,作为一个做过一定数量的GUI工作的人,我可以告诉你,虽然匈牙利符号在非GUI编程中绝对应该避免,但在做GUI时,这是一个非常好的做法。

例如,考虑一个带有文本框的简单表单,该文本框将用于输入用户名。此文本框的前面应有一个标签,提示用户在文本框中输入其姓名。现在,您将如何命名文本框?“名字”?标签呢?一个好的做法是用txt作为文本框的前缀,并用标签标记标签,这就是匈牙利符号的全部意义所在。因此,文本框现在被命名为“txtName”,相应的标签被命名为“lblName”。这为您提供了在 IDE 编辑器中轻松访问文本框、组合框和其他小部件的额外好处。例如,在 Eclipse 中键入“txt”并按 Ctrl+空格键会打开一个上下文菜单,其中列出了所有文本框(如果遵循此表示法)。

现在,回答你的问题。定义应该使用哪三个字母作为前缀的常用方法是从小部件的名称中删除所有元音以及所有重复的辅音。如果还剩下三个以上的辅音,则应忽略它们。因此,文本框(或 TextField,或您首选的小部件工具包中此小部件的任何内容)将变为“txt”,标签为“lbl”,组合框为“cmb”,表为“tbl”等。


答案 2

我通常讨厌这种东西,因为它带有匈牙利符号的味道。我不喜欢在变量名称中嵌入类型的想法,因为如果更改类型,则不应强制要求更改所有变量名称。

但就Swing而言,我想这是可以接受的。

一个好的 IDE 将为您生成变量名称。为什么不让它呢?如果你坚持,我也会拼出类型(例如 而不是 )。击键很便宜。submitButtonbtnSubmit