使用Getter Setter JAVA从其他类访问变量
我在多个类上使用getter和setter访问变量时遇到问题。我抬头看了看,但我太糊涂了 我有3种类型的用户:使用Getter Setter JAVA从其他类访问变量,java,getter-setter,setter,getter,Java,Getter Setter,Setter,Getter,我在多个类上使用getter和setter访问变量时遇到问题。我抬头看了看,但我太糊涂了 我有3种类型的用户:管理员(mysql表中的职位编号:0)、经理(职位编号:1)、办事员(职位编号:2) 我有seereport和feedbacksclass。我想通过选择位置为0的行来显示所有报告,并选择位置为1的行显示给管理员和经理,选择位置为2的行显示给职员。if语句已经完成了 所以职员只能看到位置为2的报告 经理只能查看位置为0和1的报告 管理员只能查看位置为0和1的报告 请帮帮我。我在这里呆了很长
管理员(mysql表中的职位编号:0)、经理(职位编号:1)
、办事员(职位编号:2)
我有seereport和feedbacks
class。我想通过选择位置为0的行来显示所有报告,并选择位置为1的行显示给管理员和经理,选择位置为2的行显示给职员。if语句已经完成了
所以职员只能看到位置为2的报告
经理只能查看位置为0和1的报告
管理员只能查看位置为0和1的报告
请帮帮我。我在这里呆了很长时间。我的getter setters有什么问题
如果我设置为Login\u Form
,并调用get,则在girisyap()
函数中显示correct,但如果我在另一个名为seereport和feedbacks的类中调用get,则会显示Users()构造函数的第一个初始值,而不是girisyap()
函数中的设置值
tip
value将mysql数据库中的位置\u no作为字符串,new1
value正在将if语句的字符串解析(转换)为int
用户类
public class Users {
private int id;
private String username;
private String fullname;
private String password;
private String phone;
private String gender;
private byte[] image;
private int position_no;
public Users () {
setPno(1); //firsst initialize
//getFullname();
}
public Users (int uid ,String uname, String fname, String upassword, String uphone, String ugender, byte[] uimage, int pno){
this.id = uid;
this.username = uname;
this.fullname = fname;
this.password = upassword;
this.phone = uphone;
this.gender =ugender;
this.image =uimage;
this.position_no = pno;
}
public Users (int pno){
setPno(pno);
}
public int getPno(){
return position_no;
}
public void setPno(int pno){
this.position_no = pno;
}}
请参阅ReportsandFeedbacks类(我删除了与此问题无关的函数或其他一些gui内容)
public class SeeReportsAndFeedbacks { // extends javax.swing.JFrame
//CLIENT client = new CLIENT();
int new1 = 9999; //testing something
int PositionNoGetiren;
//sers loginf = new Users(0, null,null,null,null,null,null,new1);
public SeeReportsAndFeedbacks() {
//initComponents();
Users loginf = new Users();
PositionNoGetiren = loginf.getPno(); //gets initial value instead of set value on login_form
System.out.println("Babakingg " + PositionNoGetiren);
//int ananas = loginf.getPno();
//fillFeedbackJTable(jTable2);
}
public void fillReportJTable(){//JTable table
//loginf.setPno(2); it works if i manually set but it's useless
//System.out.println("Loginfvalue in see reports: " + loginf.getPno() + loginf.getUsername());
//new1 = loginf.getPno(); //not works shows 0
//see.getNo();
new1=PositionNoGetiren;
String selectQuery = "SELECT * FROM `users` WHERE `position_no` = ?";
if(new1==0){//admin
selectQuery = "SELECT * FROM `reports`";
}
if(new1==1){//manager
selectQuery = "SELECT * FROM `reports` WHERE `position_no` = 1";
}
if(new1==2){//clerk
selectQuery = "SELECT * FROM `reports` WHERE `position_no` = 2";
}
//}
}}
登入表格
public class Login_Form {
int positionNoGetiren;
/**
* Creates new form Login_Form
*/
public Login_Form() {
//initComponents();
//positionNoGetiren = 9999;
}
private void girisyap() {
//I DELETED ALL DATABASE RELATED THINGS FOR QUESTION.
//String tip = rs.getString("position_no"); //DETECTS CORRECTLY POSITION NO FROM DATABASE
String tip = "IT'S rs.getString(\"position_no\")"; //for posting question
System.out.println(tip);
int new1 = Integer.parseInt(tip);
//Users loginf = new Users(new1); //welcome yazisi icin
Users loginf = new Users(); //ONLY WORKS IN THIS CLASS.
loginf.setPno(new1); //set user type for reports class BUT IT'S NOT WORKING
System.out.println("Loginf degeri login_formdaki: " + loginf.getPno());
//THIS IF IS WORKING CORRECTLY.
if(new1==0){
//Admin form = new Admin();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);
// form.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(new1==1){
//Manager form = new Manager();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);
}
if(new1==2){
//Clerk form = new Clerk();
//form.setVisible(true);
//form.pack();
//form.setLocationRelativeTo(null);
// form.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
//this.dispose();
}
private void jButton_LoginActionPerformed(java.awt.event.ActionEvent evt) {
girisyap();}
}
你的能手和二传手都没有问题
这很可能是解析TIP值时出现的问题,无法将其解析为INT,可能是一个奇怪的浮点值,如2.00000004,或者干脆为null。请尝试编写测试或记录查询返回的值,并检查这是否是您要查找的值。TIP没有问题。登录表单i中的if语句s工作正常。如果管理员登录,则显示“管理”面板,管理员登录显示“管理”面板,职员登录显示“职员”面板。:(如果我写入loginf.setPno(9);而不是loginf.setPno(new1);它仍然显示1(用户构造函数上的初始值):(:(