私はX軸にコースがあり、Y軸に学生の名前がある行列テーブルを作成しようとしています。 各セルは、コースの学生の成績を表す必要があります。テーブルビューの特定の列のセルを選択できないようにする方法
最初の列を生徒の名前にするだけでは、行列表を作成する方法が見つかりませんでした。 (他の方法があれば教えてください)
私は細胞を選択可能にすることができました。しかし、私は学生の名前の列のセルを選択できないようにしたいが、それは不運だ。
お知らせください。 ありがとう!
私はX軸にコースがあり、Y軸に学生の名前がある行列テーブルを作成しようとしています。 各セルは、コースの学生の成績を表す必要があります。テーブルビューの特定の列のセルを選択できないようにする方法
最初の列を生徒の名前にするだけでは、行列表を作成する方法が見つかりませんでした。 (他の方法があれば教えてください)
私は細胞を選択可能にすることができました。しかし、私は学生の名前の列のセルを選択できないようにしたいが、それは不運だ。
お知らせください。 ありがとう!
私はあなたの質問は2つの部分
最初のもので構成されてと思う:最初に学生の名前
のためのコースと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;
}}
だと、今私たちのテーブルビューを作成し、ここでそのsがありますいくつかのデータを
それを埋めることができますそれを呼び出しますコード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);
}
}
ちょうどあなたもこれを見ている必要があり、これを試してみて、独自のコードとクラス
を構築するが、あなたの質問の2番目の部分は明らか
ではありませんリンクjavafx table views
これは便利で、問題がある場合はコメントしてください。