【发布时间】:2023-03-03 23:55:01
【问题描述】:
在下面的代码部分中,我创建了两个类。第一类是用于设计的,我保留了两个 jtextfield,一个用于获取字符串值,另一个用于获取数值。第二类是描述字符串和数字的函数,用于在 jtextfield 中显示值。我无法访问类文本字段中的字符串参数。
如果我将使用此代码,它将访问每个 jtextfield 中的两个函数。请给出这个问题的解决方案。
import java.awt.event.*;
import javax.swing.*;
public class valid implements KeyListener {
perform1 per1=new perform1();
String num1="Alpha";
String num2="Numeric";
String num3="Alphanumeric";
JFrame fr=new JFrame();
JPanel jp=new JPanel();
JLabel label1=new JLabel("STUDENT NAME");
JLabel label2=new JLabel("REG NO");
JTextField text1=new JTextField(15);
JTextField text2=new JTextField(15);
public valid(){
text1.addKeyListener(this);
text2.addKeyListener(this);
jp.add(label1);
jp.add(text1);
jp.add(label2);
jp.add(text2);
fr.add(jp);
fr.setSize(450, 330);
fr.setVisible(true);
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
per1.dis(text1, e, num1);
per1.dis(text2, e, num2);
}
public static void main(String ar[])
{
new valid();
}
}
class perform1{
public void dis(JTextField PTxtCtrl,KeyEvent PKeyvalue,String PTempStr){
JLabel error=new JLabel();
String TmpCurntStr;
String TmpConvStr;
value val = value.valueOf(PTempStr);
switch(val){
case Alpha:
if(PKeyvalue.getKeyChar()>='a'&& PKeyvalue.getKeyChar()<='z'){
TmpCurntStr=PTxtCtrl.getText();
TmpConvStr=TmpCurntStr.toUpperCase();
PTxtCtrl.setText(TmpConvStr);
}else{
JOptionPane.showMessageDialog(error,"Enter only alpha");
}
break;
case Numeric:
if(PKeyvalue.getKeyChar()>='0'&& PKeyvalue.getKeyChar()<='9'){
TmpCurntStr=PTxtCtrl.getText();
System.out.println("hai");
}else{
JOptionPane.showMessageDialog(error,"Enter only numeric");
}
break;
case Alphanumeric:
break;
}
}
enum value{
Alpha,
Numeric,
Alphanumeric
}
}
【问题讨论】:
-
根据命名约定,变量名称应以小写字母开头,遵循约定可以更容易阅读代码(并避免 HTML 标记中的混淆)
-
@BinyaminSharet 我同意你的观点,但我也注意到所有参数都以 P 为前缀,这让我相信 OP 是由坚持匈牙利表示法的人指示的,并与大多数参数保持一致我知道匈牙利记谱员,他可能会因为不符合教师决定的任何标准而被扣分。
-
@glowcode - 我没有意识到这一点。看起来很合理。
-
@glowcoder 一个糟糕的老师不是做错事的借口,甚至是违反约定的借口
-
@kleopatra 这太天真了。在现实世界中,您必须维护其他人编写的代码。我在一个由 10 名程序员组成的团队中,我是唯一一个不想使用匈牙利符号的人。这是真的。我一点也不喜欢。但作为程序员,我们必须适应。