zoukankan      html  css  js  c++  java
  • javafx

    源码 DialogAPP.zip

    环境netbean   org.postgresql.Driver version 9

      1 /*
      2  * To change this license header, choose License Headers in Project Properties.
      3  * To change this template file, choose Tools | Templates
      4  * and open the template in the editor.
      5  */
      6 package dialogapp;
      7 
      8 
      9 import java.io.IOException;
     10 import java.util.Optional;
     11 import javafx.application.Application;
     12 import javafx.application.Platform;
     13 import javafx.event.ActionEvent;
     14 import javafx.event.EventHandler;
     15 import javafx.fxml.FXMLLoader;
     16 import javafx.geometry.Insets;
     17 import javafx.scene.Node;
     18 import javafx.scene.Scene;
     19 import javafx.scene.control.Button;
     20 import javafx.scene.control.ButtonBar.ButtonData;
     21 import javafx.scene.control.ButtonType;
     22 import javafx.scene.control.Dialog;
     23 import javafx.scene.control.Label;
     24 import javafx.scene.control.PasswordField;
     25 import javafx.scene.control.TableColumn;
     26 import javafx.scene.control.TextField;
     27 import javafx.scene.image.ImageView;
     28 import javafx.scene.layout.AnchorPane;
     29 import javafx.scene.layout.GridPane;
     30 import javafx.scene.layout.StackPane;
     31 import javafx.stage.Stage;
     32 import javafx.util.Pair;
     33 
     34 /**
     35  *
     36  * @author  
     37  */
     38 public class DialogAPP extends Application {
     39 
     40     StackPane root;
     41    Scene scene;
     42     
     43     @Override
     44     public void start(Stage primaryStage) throws IOException {
     45 //        Button btn = new Button();
     46 //        btn.setText("Say xxxxx'");
     47 //        btn.setOnAction(new EventHandler<ActionEvent>() {
     48 //
     49 //            @Override
     50 //            public void handle(ActionEvent event) {
     51 //                System.out.println("Hello World!");
     52 //            }
     53 //        });
     54 
     55          // root = new StackPane();
     56         //  root.getChildren().add(btn);
     57 
     58 //        Alert alert = new Alert(AlertType.CONFIRMATION);
     59 //        alert.setTitle("Information Dialog");
     60 //        alert.setHeaderText("Look, an Information Dialog");
     61 //        alert.setContentText("I have a great message for you!");
     62 //
     63 //        //  alert.showAndWait();
     64 //        Optional<ButtonType> result = alert.showAndWait();
     65 //
     66 //        if (result.get() == ButtonType.OK) {
     67 //            System.out.print("ok");
     68 //        } else {
     69 //            System.out.print("cancel");
     70 //        }
     71 //
     72 //        TextInputDialog dialog = new TextInputDialog("walter");
     73 //        // Traditional way to get the response value.
     74 //        Optional<String> result1 = dialog.showAndWait();
     75 //        if (result1.isPresent()) {
     76 //            System.out.println("Your name: " + result1.get());
     77 //        } 
     78 //        result1.ifPresent(name -> System.out.println("Your name: " + name));
     79         
     80         
     81         
     82         
     83 // List<String> choices = new ArrayList<>();
     84 //choices.add("a");
     85 //choices.add("b");
     86 //choices.add("c");
     87 //
     88 //ChoiceDialog<String> dialog2 = new ChoiceDialog<>("b", choices);
     89 // Optional<String> result2 = dialog2.showAndWait();
     90 //        if (result2.isPresent()) {
     91 //            System.out.println("Your choose: " + result2.get());
     92 //        } 
     93 //        result2.ifPresent(name -> System.out.println("Your name: " + name));        
     94         
     95         
     96         
     97         
     98         
     99         //login
    100         // Create the custom dialog.
    101 //Dialog<Pair<String, String>> dialog = new Dialog<>();
    102 //dialog.setTitle("Login Dialog");
    103 //dialog.setHeaderText("Look, a Custom Login Dialog");
    104 //
    105 //// Set the icon (must be included in the project).
    106 //dialog.setGraphic(new ImageView(this.getClass().getResource("login.png").toString()));
    107 //
    108 //// Set the button types.
    109 //ButtonType loginButtonType = new ButtonType("Login", ButtonData.OK_DONE);
    110 //dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL);
    111 //
    112 //// Create the username and password labels and fields.
    113 //GridPane grid = new GridPane();
    114 //grid.setHgap(10);
    115 //grid.setVgap(10);
    116 //grid.setPadding(new Insets(20, 150, 10, 10));
    117 //
    118 //TextField username = new TextField();
    119 //username.setPromptText("Username");
    120 //PasswordField password = new PasswordField();
    121 //password.setPromptText("Password");
    122 //
    123 //grid.add(new Label("Username:"), 0, 0);
    124 //grid.add(username, 1, 0);
    125 //grid.add(new Label("Password:"), 0, 1);
    126 //grid.add(password, 1, 1);
    127 //
    128 //// Enable/Disable login button depending on whether a username was entered.
    129 //Node loginButton = dialog.getDialogPane().lookupButton(loginButtonType);
    130 //loginButton.setDisable(true);
    131 //
    132 //// Do some validation (using the Java 8 lambda syntax).
    133 //username.textProperty().addListener((observable, oldValue, newValue) -> {
    134 //    loginButton.setDisable(newValue.trim().isEmpty());
    135 //});
    136 //
    137 //dialog.getDialogPane().setContent(grid);
    138 //
    139 //// Request focus on the username field by default.
    140 //Platform.runLater(() -> username.requestFocus());
    141 //
    142 //// Convert the result to a username-password-pair when the login button is clicked.
    143 //dialog.setResultConverter(dialogButton -> {
    144 //    if (dialogButton == loginButtonType) {
    145 //        return new Pair<>(username.getText(), password.getText());
    146 //    }
    147 //    return null;
    148 //});
    149 //
    150 //
    151 //
    152 //Optional<Pair<String, String>> result = dialog.showAndWait();
    153 //
    154 //result.ifPresent(usernamePassword -> {
    155 //    System.out.println("Username=" + usernamePassword.getKey() + ", Password=" + usernamePassword.getValue());
    156 //});
    157         
    158         
    159        
    160         
    161         loadDialogShowView(primaryStage);
    162  
    163     }
    164 
    165     
    166     public void loadDialogShowView(Stage primaryStage) throws IOException{
    167         FXMLLoader loader=new FXMLLoader();
    168         loader.setLocation(DialogAPP.class.getResource("/dialogapp/DialogShowFXML.fxml"));
    169         AnchorPane ap=(AnchorPane)loader.load();
    170      
    171         DialogShowFXMLController ds=loader.getController();
    172         ds.ShowOBJ();
    173         scene = new Scene(ap);
    174         
    175         // 给 row 添加样式  
    176         scene.getStylesheets().addAll(DialogAPP.class.getResource("/dialogapp/rowstyle.css").toExternalForm());
    177         primaryStage.setScene(scene);
    178         primaryStage.show();
    179      
    180     }
    181     /**
    182      * @param args the command line arguments
    183      */
    184     public static void main(String[] args) {
    185         launch(args);
    186     }
    187 
    188 }
      1 /*
      2  * To change this license header, choose License Headers in Project Properties.
      3  * To change this template file, choose Tools | Templates
      4  * and open the template in the editor.
      5  */
      6 package dialogapp;
      7 
      8 import java.net.URL;
      9 import java.sql.SQLException;
     10 import java.util.List;
     11 import java.util.ResourceBundle;
     12 import java.util.logging.Level;
     13 import java.util.logging.Logger;
     14 import javafx.beans.property.SimpleStringProperty;
     15 
     16 import javafx.beans.property.StringProperty;
     17 import javafx.collections.FXCollections;
     18 import javafx.collections.ObservableList;
     19  
     20 import javafx.fxml.FXML;
     21 import javafx.fxml.Initializable;
     22 import javafx.scene.control.TableCell;
     23 import javafx.scene.control.TableColumn;
     24 import javafx.scene.control.TableColumn.CellEditEvent;
     25 import javafx.scene.control.TableView;
     26 import javafx.scene.paint.Color;
     27 import javafx.util.Callback;
     28 
     29 /**
     30  * FXML Controller class
     31  *
     32  * @author  
     33  */
     34 public class DialogShowFXMLController implements Initializable {
     35 
     36     @FXML
     37     private TableView<ShowObject> ObjectTable;
     38     //TableColumn<Person, String>
     39     @FXML
     40     public TableColumn<ShowObject, String> firstOBJ;
     41 
     42     @FXML
     43     public TableColumn<ShowObject, String> secondOBJ;
     44 
     45     /**
     46      * Initializes the controller class.
     47      */
     48     @FXML
     49     public void initialize(URL url, ResourceBundle rb) {
     50         
     51         
     52         ObjectTable.setEditable(true);
     53         firstOBJ.setCellValueFactory(cellData -> cellData.getValue().firstOBJProperty());
     54         secondOBJ.setCellValueFactory(cellData -> cellData.getValue().secondOBJProperty());
     55 
     56         // fix or change item s
     57         secondOBJ.setCellFactory(new Callback<TableColumn<ShowObject, String>, TableCell<ShowObject, String>>() {
     58 
     59             @Override
     60             public TableCell<ShowObject, String> call(TableColumn<ShowObject, String> param) {
     61 
     62                 return new TableCell<ShowObject, String>() {
     63 
     64                     @Override
     65                     protected void updateItem(String item, boolean empty) {
     66 
     67                               //  super.updateItem(item, empty);
     68                         if (!empty) {
     69 
     70                             //  if(item.contains("shoe")) {
     71                             if (item.equals("shoe")) {
     72                                 this.setTextFill(Color.BLUEVIOLET);
     73                             } else {
     74                                 setTextFill(Color.BLACK);
     75                             }
     76                             setText(item);
     77                             //System.out.println("----------"+getText()+"-------"+item+"-----------"+isEmpty());
     78 
     79                         } else {
     80                             setText(null);
     81                         }
     82                     }
     83 
     84                 };
     85             }
     86         });
     87  
     88  
     89         secondOBJ.setOnEditCommit(             
     90                 (CellEditEvent<ShowObject, String> t) -> {
     91                     ((ShowObject) t.getTableView().getItems().get(t.getTablePosition().getRow())).setSecondOBJ(t.getNewValue());
     92              
     93                 });
     94         
     95         
     96 //        columnValue.setCellFactory(cellFactory);
     97 //      columnValue.setOnEditCommit(
     98 //              new EventHandler<TableColumn.CellEditEvent<Record, Double>>() {
     99 //                  @Override public void handle(TableColumn.CellEditEvent<Record, Double> t) {
    100 //                      ((Record)t.getTableView().getItems().get(
    101 //                              t.getTablePosition().getRow())).setFieldValue(t.getNewValue());
    102 //                  }
    103 //              });
    104         
    105     }
    106     private ObservableList<ShowObject> objectData = FXCollections.observableArrayList();
    107 
    108     private void setobjectData() {
    109 
    110 //        objectData.add(new ShowObject("hands", "glove"));
    111 //        objectData.add(new ShowObject("foot", "shoe"));
    112 //        objectData.add(new ShowObject("head", "hat"));
    113 //        objectData.add(new ShowObject("leg", "trouse"));
    114 //        objectData.add(new ShowObject("body", "clothes"));
    115 //        objectData.add(new ShowObject("", ""));
    116 //        objectData.add(new ShowObject("", ""));
    117 //        objectData.add(new ShowObject("", ""));
    118         
    119          DBhelp dbh=new DBhelp();
    120          String sql="select * from tbl_test_object";
    121           try {
    122               List<ShowObject> l= dbh.selectRun(sql);              
    123               objectData=FXCollections.observableArrayList(l);
    124               
    125 //              for(ShowObject so:l){
    126 //              System.out.println(so.getFirstOBJ()+"  ///// "+so.getSecondOBJ());
    127 //              }     
    128           } catch (ClassNotFoundException ex) {
    129               Logger.getLogger(DBhelp.class.getName()).log(Level.SEVERE, null, ex);
    130           } catch (SQLException ex) {
    131               Logger.getLogger(DBhelp.class.getName()).log(Level.SEVERE, null, ex);
    132           }
    133     }
    134 
    135     public void ShowOBJ() {
    136         setobjectData();
    137         ObjectTable.setItems(objectData);
    138     }
    139 
    140     public class ShowObject {
    141 
    142         private final StringProperty firstOBJ;
    143         private final StringProperty secondOBJ;
    144 
    145         public ShowObject(String S1, String S2) {
    146 
    147             this.firstOBJ = new SimpleStringProperty(S1);
    148             this.secondOBJ = new SimpleStringProperty(S2);
    149         }
    150 
    151         public StringProperty firstOBJProperty() {
    152             return firstOBJ;
    153         }
    154 
    155         public StringProperty secondOBJProperty() {
    156             return secondOBJ;
    157         }
    158 
    159         public String getFirstOBJ() {
    160             return firstOBJ.get();
    161         }
    162  
    163 //        public void setFirstOBJ(String firstOBJ) {
    164 //            this.firstOBJ.set(firstOBJ);
    165 //        }
    166  
    167         public String getSecondOBJ() {
    168             return secondOBJ.get();
    169         }
    170 
    171         public void setSecondOBJ(String secondOBJ) {
    172             this.secondOBJ.set(secondOBJ);
    173         }
    174 
    175     }
    176 
    177 }
     1 /*
     2  * To change this license header, choose License Headers in Project Properties.
     3  * To change this template file, choose Tools | Templates
     4  * and open the template in the editor.
     5  */
     6 package dialogapp;
     7 
     8 import dialogapp.DialogShowFXMLController.ShowObject;
     9 import java.sql.Connection;
    10 import java.sql.DriverManager;
    11 import java.sql.ResultSet;
    12 import java.sql.SQLException;
    13 import java.sql.Statement;
    14 import java.util.ArrayList;
    15 import java.util.List;
    16 import java.util.logging.Level;
    17 import java.util.logging.Logger;
    18  
    19 
    20  
    21 
    22 /**
    23  *
    24  * @author  
    25  */
    26 
    27 
    28  public class DBhelp {
    29      
    30 //    //table script
    31 //    CREATE TABLE "public"."tbl_test_object" (
    32 //"firstOBJ" varchar(10),
    33 //"secondOBJ" varchar(10)
    34 //);
    35  
    36     
    37     
    38     
    39       public List<ShowObject> selectRun(String sql) throws ClassNotFoundException, SQLException{
    40           List<ShowObject> l=new ArrayList();
    41           String connStr="jdbc:postgresql://spec2.dunham-bush.com:5433/spec7";
    42           DialogShowFXMLController dbase=new DialogShowFXMLController();
    43           ShowObject so=dbase.new ShowObject("","");
    44                        
    45           Class.forName("org.postgresql.Driver");
    46           Connection con= DriverManager.getConnection(connStr,"ecatalog","yeA");
    47           
    48           Statement st=con.createStatement();
    49           st.execute(sql);
    50           ResultSet rs=st.getResultSet();
    51           
    52           
    53           while(rs.next()){
    54             String  firstOBJ=rs.getString("firstOBJ");
    55             String  secondOBJ= rs.getString("secondOBJ");
    56               l.add(dbase.new ShowObject(firstOBJ,secondOBJ));
    57              
    58           }            
    59          
    60           return  l;
    61       }
    62     public static void main(String args[]) {
    63         
    64     DBhelp dbh=new DBhelp();
    65     String sql="select * from tbl_test_object";
    66           try {
    67               List<ShowObject> l= dbh.selectRun(sql);
    68               for(ShowObject so:l){
    69               System.out.println(so.getFirstOBJ()+"  ///// "+so.getSecondOBJ());
    70               }
    71                         
    72               
    73           } catch (ClassNotFoundException ex) {
    74               Logger.getLogger(DBhelp.class.getName()).log(Level.SEVERE, null, ex);
    75           } catch (SQLException ex) {
    76               Logger.getLogger(DBhelp.class.getName()).log(Level.SEVERE, null, ex);
    77           }
    78        
    79     
    80     }
    81 }

    DialogShowFXML.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <?import java.lang.*?>
     4 <?import java.util.*?>
     5 <?import javafx.scene.*?>
     6 <?import javafx.scene.control.*?>
     7 <?import javafx.scene.layout.*?>
     8 
     9 <AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="dialogapp.DialogShowFXMLController">
    10    <children>
    11       <TableView fx:id="ObjectTable" layoutX="194.0" layoutY="100.0" prefHeight="200.0" prefWidth="200.0">
    12         <columns>
    13           <TableColumn fx:id="firstOBJ" prefWidth="98.0" text="S1" />
    14           <TableColumn fx:id="secondOBJ" minWidth="8.0" prefWidth="101.0" text="S2" />
    15         </columns>
    16       </TableView>
    17    </children>
    18 </AnchorPane>

    rowstyle.css

     1 /*
     2 To change this license header, choose License Headers in Project Properties.
     3 To change this template file, choose Tools | Templates
     4 and open the template in the editor.
     5 */
     6 /* 
     7     Created on : Aug 5, 2015, 10:55:39 AM
     8     Author     :  
     9 */
    10 
    11 .table-row-cell:empty {
    12     -fx-background-color: white;
    13 }
    14  
    15 .table-row-cell:empty .table-cell {
    16     -fx-border- 0px;
    17 }
  • 相关阅读:
    Linux 部署 nginx
    Linux 部署vue项目(使用nginx)
    git 操作规范
    mysql grant权限分配(转)。
    前端优化,包括css,jss,img,cookie
    关于js里的那一堆事件
    个人作业——软件工程实践总结作业
    Unity3D 快捷键
    Beta冲刺第二天
    Beta冲刺第一天
  • 原文地址:https://www.cnblogs.com/rojas/p/4707502.html
Copyright © 2011-2022 走看看