你好,我嘗試做的啓動方法類似的getData從MySQL中的JavaFX在啓動程序的JavaFX場景構建器中顯示變量
現在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);
}
}
DBCONNECT
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);
}
}
}
感謝您的回答,我創建SimpleController後創建它,IDEA促使我加入到公共字符串的getData - >「返回的getData 「因爲沒有它,getData不會返回任何東西。當我們啓動程序時,我們可以看到帶有Button的JavaFX窗口,但沒有自動從MySQL加載數據:/。按鈕循環getData方法:) – TomaszBag
是從'getData()'替換'labelek.setText(「Temperature is」+ temperathure);''with'return TemperaturaPow;' – MBec
我添加'return TemperaturaPow()'而不是'labelek.setText )''但是IDEA仍然希望在'public String getData(){} return <---'之後返回''''因此我爲初學者添加'return = getData'.hmm總是吹到眼睛:) – TomaszBag