2016-03-24 1 views
-2

私のプロジェクトでは、いくつかの目的のためにラベルの束を持っています。私はドラッグを使ってスタックペイン上でそれらを移動することができるので、私は自分の新しい場所を私のアプリに保存できるようにしたい。だから私はXとYの位置、ラベルの名前とそのテキストの列を持つデータベースについて考えていました。javafxで文字列をラベルに変換するにはどうすればよいですか?

しかし、私はラベルのかなり多くを使用することから、私は1つでデータベース1からのラベルの負荷をコーディングしたくなかったので、私はこれを使用:

private void button_load(ActionEvent event) { 
    try{ 
    String host = "jdbc:sqlite:C://app/app.sqlite"; 
     Connection con = DriverManager.getConnection(host); 
     PreparedStatement pst = null; 
     String SQL = "select * from labels"; 
     pst=con.prepareStatement(SQL); 
     ResultSet rs=pst.executeQuery(); 

     while(rs.next()){ 

     String name=rs.getString("Name"); 
     Double Y=rs.getDouble("Y"); 
     Double X=rs.getDouble("X"); 
     String Text=rs.getString("Text"); 

     name.setLayoutX(X); 
     name.setLayoutX(Y); 
     name.setText(Text); 

     }} 

     catch (SQLException ex)   
{  Logger.getLogger(app.class.getName()).log(Level.SEVERE, null, ex);}} 

明白な問題があること、ですラベル("string cannot be converted to label")としてさらに使用するために、文字列の内容(この場合は「名前」)を使用することは許可されていません。私はいくつかの解決策を探してきましたが、何も見つかりませんでした。

私は、文字列をラベルに変換する方法や、このような状況に役立つその他の方法を教えてください。あなたは、各レコードの新しいLabelを作成し、あなたのペインに追加する必要があり

おかげ

+0

データベースに格納されている内容をより明確に説明できますか? 'text'、' x'、 'y'は自明ですが、データベーステーブルの" Name "列は何ですか?データベースの各行からラベルを作成したいのではないでしょうか? –

答えて

0

:私はあなたが名前で保存わからないよ

private Pane pane = ... // Or group or some other form of a container 

private void button_load(ActionEvent event) { 
    try{ 
     String host = "jdbc:sqlite:C://app/app.sqlite"; 
     Connection con = DriverManager.getConnection(host); 
     PreparedStatement pst = null; 
     String SQL = "select * from labels"; 
     pst=con.prepareStatement(SQL); 
     ResultSet rs=pst.executeQuery(); 

     while(rs.next()){ 
      Label label = new Label(); 

      String name=rs.getString("Name"); 
      Double Y=rs.getDouble("Y"); 
      Double X=rs.getDouble("X"); 
      String Text=rs.getString("Text"); 

      label.setLayoutX(X); 
      label.setLayoutX(Y); 
      label.setText(Text); 
      label.setId(name); 
      pane.getChildren().add(label); 

     } 
     } catch (SQLException ex){  
      Logger.getLogger(app.class.getName()).log(Level.SEVERE, null, ex); 
     } 
} 

、私の推測ではそれができるということですノードのid

関連する問題