public boolean CheckInput() { String StuNumber = EtStuNumber.getText().toString(); String StuPwd = EtStuPwd.getText().toString(); if(StuNumber.trim().equals("")) { Toast.makeText(LoginActivity.this,"学号不能为空!",Toast.LENGTH_SHORT).show(); return false; } if(StuPwd.trim().equals("")) { Toast.makeText(LoginActivity.this,"密码不能为空!",Toast.LENGTH_SHORT).show(); return false; } return true; } } 这一段代码是什么意思
时间: 2024-04-18 11:23:32 浏览: 15
这段代码是一个方法,名为CheckInput(),它用于查用户输入的学号和密码是否为空。首先,它获取用户输入的学号和密码,并将它们转换为字符串类型。然后,它使用trim()方法去除字符串两端的空格。接下来,它通过equals()方法将去除空格后的学号和密码与空字符串进行比较。如果学号为空,则会显示一个短暂的提示信息"学号不能为空!",并返回false。如果密码为空,同样会显示一个短暂的提示信息"密码不能为空!",并返回false。如果学号和密码都不为空,则返回true。
相关问题
public void actionPerformed(ActionEvent e) { String username=uField.getText().trim(); String password =pField.getText().trim(); String phonenum=tField.getText().trim(); String gender=bg.isSelected(maleBtn.getModel())?maleBtn.getText():femaleBtn.getText(); String Driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/data2?characterEncoding=UTF8&useSSL=false"; Connection conn = null; try{ Class.forName(Driver); conn = DriverManager.getConnection(url, "root", "yxh9497"); Statement stmt=conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM userinformation"); while(rs.next()) { if(username==rs.getString(username)) { JOptionPane.showMessageDialog(null, "用户名已被注册"); break; } } String sql1="insert into userinformation values('"+ username+ "','"+password+"','"+phonenum+"','"+gender+"')"; int a= stmt.executeUpdate(sql1); }catch(Exception ex){ ex.printStackTrace(); } try{ //关闭数据库联接类 conn.close(); }catch(Exception ex){ ex.printStackTrace(); } JOptionPane.showMessageDialog(null, "注册成功"); jf.setVisible(false); new GUI().init();}我想在当用户名重复时,不再执行String sql1="insert into userinformation values('"+ username+ "','"+password+"','"+phonenum+"','"+gender+"')"; int a= stmt.executeUpdate(sql1); }catch(Exception ex){ ex.printStackTrace(); } try{ //关闭数据库联接类 conn.close(); }catch(Exception ex){ ex.printStackTrace(); } JOptionPane.showMessageDialog(null, "注册成功"); jf.setVisible(false); new GUI().init();}这些语句,该怎么办
你可以在 while 循环中加一个标志变量,如 isExist,初始值为 false。如果找到重复的用户名,将该变量设为 true,然后在 while 循环结束后根据 isExist 的值来判断是否执行插入语句和注册成功的提示框。修改后的代码如下:
```
public void actionPerformed(ActionEvent e) {
String username = uField.getText().trim();
String password = pField.getText().trim();
String phonenum = tField.getText().trim();
String gender = bg.isSelected(maleBtn.getModel()) ? maleBtn.getText() : femaleBtn.getText();
String Driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/data2?characterEncoding=UTF8&useSSL=false";
Connection conn = null;
boolean isExist = false; // 标志变量
try {
Class.forName(Driver);
conn = DriverManager.getConnection(url, "root", "yxh9497");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM userinformation");
while (rs.next()) {
if (username.equals(rs.getString("username"))) { // 修改此处
JOptionPane.showMessageDialog(null, "用户名已被注册");
isExist = true; // 修改标志变量的值
break;
}
}
if (!isExist) { // 如果用户名不存在,才执行以下语句
String sql1 = "insert into userinformation values('" + username + "','" + password + "','" + phonenum + "','" + gender + "')";
int a = stmt.executeUpdate(sql1);
JOptionPane.showMessageDialog(null, "注册成功");
jf.setVisible(false);
new GUI().init();
}
} catch (Exception ex) {
ex.printStackTrace();
}
try {
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
```
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ipEditText = findViewById(R.id.ipEditText); portEditText = findViewById(R.id.portEditText); Button connectButton = findViewById(R.id.connectButton); connectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String ip = ipEditText.getText().toString(); int port = Integer.parseInt(portEditText.getText().toString()); new ConnectTask().execute(ip, String.valueOf(port)); } });我想加入一个滑块,能在不同位置向端口发送对应的字符型数字
好的,可以在 activity_main.xml 文件中添加一个 SeekBar 控件,并为其设置一个 ID,例如:
```
<SeekBar
android:id="@+id/seekBar_x"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
然后在 MainActivity 的 onCreate 方法中,找到该 SeekBar 控件并为其设置一个 OnSeekBarChangeListener,例如:
```
SeekBar seekBar_x = findViewById(R.id.seekBar_x);
seekBar_x.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 根据不同的位置发送不同的字符型数字
switch (seekBar.getId()) {
case R.id.seekBar_x:
new SendDataTask().execute('x' + String.valueOf(progress));
break;
// 这里可以添加更多的位置
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
```
在 SendDataTask 类中的 doInBackground 方法中将字符型数字发送到已连接的端口。
值得注意的是,如果您在 doInBackground 方法中发送网络请求,应该避免在主线程中执行该任务。可以使用 AsyncTask 或者 Handler 等方式在后台线程中执行该任务。