提问人:NEO 提问时间:11/9/2023 最后编辑:Brian Tompsett - 汤莱恩NEO 更新时间:11/10/2023 访问量:28
我需要将数据库值获取到 JLabels
I need to get database values to JLabels
问:
我有一个连接到 API(连接到数据库)的代码。
现在,我需要从数据库中获取用户值,并将其值写入 JLabels。
问题出在用户初始化上,但我似乎找不到在哪里。
public void mainFrame() {
label = new JLabel();
frame = new JFrame();
panel = new JPanel();
textField = new JTextField();
button = new JButton("Enter");
panel.setBorder(BorderFactory.createEmptyBorder(100, 100, 100, 100));
label.setText("ENTER ID");
panel.add(label);
textField.setPreferredSize(new Dimension(100, 20));
panel.add(textField, BorderLayout.CENTER);
button.setSize(50, 50);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
popUp(new User());
APITesting.getById(textField.getText());
}
});
panel.add(button, BorderLayout.CENTER);
frame.setTitle("Log In");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(300, 300);
frame.add(panel);
}
public void popUp(User user) {
frame = new JFrame();
panel = new JPanel();
button = new JButton("Stop");
label = new JLabel("Success!!!");
idLabel = new JLabel();
nameLabel = new JLabel();
surnameLabel = new JLabel();
genderLabel = new JLabel();
salaryLabel = new JLabel();
role_idLabel = new JLabel();
total_payLabel = new JLabel();
counterLabel = new JLabel();
cashLabel = new JLabel("Earned:");
panel.setBorder(BorderFactory.createEmptyBorder(100, 100, 100, 100));
panel.setVisible(true);
panel.add(label);
idLabel.setText("ID: " + textField.getText());
panel.add(idLabel);
nameLabel.setText("Name: " + user.getName());
panel.add(nameLabel);
surnameLabel.setText("Surname: " + user.getSurname());
panel.add(surnameLabel);
genderLabel.setText("Gender: " + user.getGender());
panel.add(genderLabel);
salaryLabel.setText("Salary: " + user.getSalary());
panel.add(salaryLabel);
role_idLabel.setText("Role ID: " + user.getRole_id());
panel.add(role_idLabel);
total_payLabel.setText("Total Pay: " + user.getTotal_pay());
panel.add(total_payLabel);
counterLabel.setText("");
panel.add(counterLabel);
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
} else if (minutes == 60) {
minutes = 0;
hours++;
}
String timeText = String.format("%02d:%02d:%02d", hours, minutes, seconds);
counterLabel.setText(timeText);
salary = hours * 10;
cashLabel.setText("Earned: " + salary + "$");
panel.add(cashLabel);
}
});
timer.start();
button.setSize(50, 50);
button.setVisible(true);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timer.stop();
frame.dispose();
}
});
panel.add(button, BorderLayout.CENTER);
panel.setLayout(new GridLayout(11, 5));
insets = panel.getInsets();
Dimension size = label.getPreferredSize();
label.setBounds(100 + insets.left, 70, size.width, size.height);
size = idLabel.getPreferredSize();
idLabel.setBounds(50 + insets.left, 100, size.width, size.height);
size = nameLabel.getPreferredSize();
nameLabel.setBounds(50 + insets.left, 130, size.width, size.height);
size = surnameLabel.getPreferredSize();
surnameLabel.setBounds(50 + insets.left, 160, size.width, size.height);
size = genderLabel.getPreferredSize();
genderLabel.setBounds(50 + insets.left, 190, size.width, size.height);
size = salaryLabel.getPreferredSize();
salaryLabel.setBounds(50 + insets.left, 220, size.width, size.height);
size = role_idLabel.getPreferredSize();
role_idLabel.setBounds(50 + insets.left, 250, size.width, size.height);
size = total_payLabel.getPreferredSize();
total_payLabel.setBounds(50 + insets.left, 280, size.width, size.height);
size = counterLabel.getPreferredSize();
counterLabel.setBounds(50 + insets.left, 310, size.width, size.height);
size = button.getPreferredSize();
button.setBounds(50 + insets.left, 340, size.width, size.height);
frame.setSize(400, 500);
frame.setVisible(true);
frame.repaint(0,0,0,0);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
}
我想我几乎尝试了一切。我也知道由于某种我无法理解的原因,用户是空的。
答:
0赞
Rafael Guillen
11/10/2023
#1
在这里,您将向对话框发送一个新对象:User
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
popUp(new User()); //New User (it's empty)
APITesting.getById(textField.getText());
}
});
相反,您必须为对象提供从数据库中填充的值。User
评论