您好我尝试在JavaFX中的start方法上执行类似于MySQL的getData
现在在Intellji中单击“运行程序”,然后窗口出现在屏幕上 .
我有一个按钮“获取数据”,在我点击它之后,我从Mysql获取数据以在Label中显示它 .
当我们单击“运行程序”和JavaFX显示程序窗口时,这是一些解决方案,这个来自MySQL的数据会自动显示在标签中吗?
我的意思是如何在public void start中运行方法getData(从MySQL获取数据)?
我显示变量“Label labelek;”点击按钮“Label labelek;”在getData方法中
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 600, 275));
DBConnect connect = new DBConnect();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
数据库连接
package sample;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import java.sql.*;
public class DBConnect {
private Connection con;
private Statement st;
private ResultSet rs;
@FXML
public Label labelek;
//utworzenie konstruktora
public DBConnect(){
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://xxx","xxx",
"xxx");
st = con.createStatement();
} catch (Exception ex){
System.out.println("Error: " + ex);
}
}
public void getData(){
try {
String query = "select * from x order by id desc limit 1";
rs = st.executeQuery(query);
System.out.println("Records from DataBase");
while(rs.next()){
String TemperaturaPow = rs.getString("TemperaturaPow");
labelek.setText("Temperature is " + temperathure);
}
} catch (Exception ex){
System.out.println("Error: " + ex);
}
}
}
2 回答
从
DBConnect
class中删除Label labelek
. 创建单独的SampleController
类,在initalize()
方法中调用DBConnect connect = new DBConnect()
并将数据附加到Label labelek
.SampleController
单击按钮与onAction(SceneBuilder)getData后,我只能在没有TemperaturaPow的IDEA“数据库记录”中看到:/
Scene Builder中的控制器类是:sample.DBConnect
这真的很难; P?
公共类SampleController实现Initializable {
PrintScreen