2017-01-12 3 views
0

저는 X 축에 코스가 있고 Y 축에 학생 이름이있는 매트릭스 테이블을 만들려고합니다. 각 셀은 코스에서 학생의 학년을 나타내야합니다.표보기의 특정 열의 셀을 선택 불가능하게 만드는 방법?

첫 번째 열을 학생 이름으로 만들기 위해 매트릭스 표를 만드는 방법을 찾지 못했습니다. (다른 방법이 있으면 알려주세요)

셀을 선택 가능하게 만들 수있었습니다. 그러나 나는 학생의 이름 열 셀을 선택 취소 할 수 있지만 그 행운이 없기를 바란다.

알려 주시기 바랍니다. 감사합니다.

답변

0

나는 당신의 질문은 두 부분으로

첫 번째 구성 생각 :는 교육 과정과 학생의 이름에 대한 y 축에 대한 x 축과 테이블을 만드는

처음

우리가 만드는 간단한 클래스 우리 데이터 모델 및

여기의의의 우리 테이블보기를 만들 데이터가 여기에 지금은 코드

public class Data{ 

private String studentName; 
private int mathDegree; 
private int religionDegree; 
private int javaDegree; 

public Data(String studentName, int mathDegree, int religionDegree, int javaDegree) 
{ 
    this.studentName = studentName; 
    this.mathDegree = mathDegree; 
    this.religionDegree = religionDegree; 
    this.javaDegree = javaDegree; 
} 

public String getStudentName() 
{ 
    return studentName; 
} 

public void setStudentName(String studentName) 
{ 
    this.studentName = studentName; 
} 

public int getMathDegree() 
{ 
    return mathDegree; 
} 

public void setMathDegree(int mathDegree) 
{ 
    this.mathDegree = mathDegree; 
} 

public int getReligionDegree() 
{ 
    return religionDegree; 
} 

public void setReligionDegree(int religionDegree) 
{ 
    this.religionDegree = religionDegree; 
} 

public int getJavaDegree() 
{ 
    return javaDegree; 
} 

public void setJavaDegree(int javaDegree) 
{ 
    this.javaDegree = javaDegree; 
}} 

입니다 그리고 그것을 할 수 있습니다 전화 및 일부 데이터로 채우기 imple 코드

import java.net.URI; 
import java.util.ArrayList; 
import java.util.List; 
import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Hyperlink; 
import javafx.scene.control.TableColumn; 
import javafx.scene.control.TablePosition; 
import javafx.scene.control.TableView; 
import javafx.scene.control.cell.PropertyValueFactory; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 

public class JFXION extends Application{ 
@Override 
public void start(Stage stage) 
{ 

    List<Data> dataList = new ArrayList<>(); 
    dataList.add(new Data("Mohammed", 50, 50, 50)); 
    dataList.add(new Data("Ahmed", 49, 50, 47)); 
    dataList.add(new Data("Anas", 45, 49, 49)); 

    //tell the table that: your data is represented in [Data]objects 
    TableView<Data> table = new TableView(); 

    table.setEditable(true); 

    TableColumn<Data, String> studentsColumn = new TableColumn("student"); 
    //tell the student name column that your data is found in a field called[studentName] 
    studentsColumn.setCellValueFactory(
      new PropertyValueFactory<>("studentName") 
    ); 

    TableColumn<Data, Integer> mathColumn = new TableColumn("Maths"); 
    mathColumn.setCellValueFactory(new PropertyValueFactory<>("mathDegree")); 
    TableColumn<Data, Integer> religionColumn = new TableColumn("Religion"); 
    religionColumn.setCellValueFactory(new PropertyValueFactory<>("religionDegree")); 
    TableColumn<Data, Integer> javaColumn = new TableColumn("Java"); 
    javaColumn.setCellValueFactory(new PropertyValueFactory<>("javaDegree")); 
    TableColumn coursesColumns = new TableColumn("courses"); 
    coursesColumns.getColumns().addAll(mathColumn, religionColumn, javaColumn); 
    TablePosition cell = table.getFocusModel().getFocusedCell(); 

    table.getColumns().addAll(studentsColumn, coursesColumns); 

    table.getItems().addAll(dataList); 

    Hyperlink link = new Hyperlink("more info"); 
    link.setOnAction(e -> 
    { 
     try 
     { 
      java.awt.Desktop.getDesktop().browse(new URI("http://docs.oracle.com/javafx/2/ui_controls/table-view.htm")); 
     } catch (Exception ex) 
     { 
      throw new RuntimeException(ex); 
     } 
    }); 

    VBox box = new VBox(10, table, link); 

    Scene scene = new Scene(box); 
    stage.setScene(scene); 
    stage.show(); 
} 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) 
{ 
    launch(args); 
} 

}

하지만 질문의 두 번째 부분은 명확하지 않다가

하기이에보고해야이 시도하고 자신의 코드와 클래스를 구축 링크 javafx table views

나는 이것이 유용하고 어떤 문제가 있다면 의견을 말하기 바랍니다.