我有以下问题:我创建了一个代码来分隔Euclid算法的每个变量并存储在一个数组或对象中。我想不出一种方法来检索数据并填充tableView,这样,根据MDC(a,b),如果非常大,则会自动添加列。
事实上,它代表了连续分裂的MDC解决方案。我做了一个测试,但我无法运行它。遵循代码。
MDC
public List<Inteiros_old> listMdc(Inteiros_old inteiros) {
//List<Integer> lista_resto = new ArrayList<Integer>();
System.out.println(" Dividendo" + "\t" + " Divisor " + "\t" + " Quociente" + "\t" + " Resto ");
System.out.println("----------" + "\t" + "----------" + "\t" + "----------" + "\t" + "----------");
int max_inteiros = Math.max(inteiros.getDividendo(), inteiros.getDivisor());
int min_inteiros = Math.min(inteiros.getDividendo(), inteiros.getDivisor());
//System.out.println(k + "\t" + m);
List<Inteiros_old> lista = new ArrayList<Inteiros_old>();
while( min_inteiros != 0) {
inteiros.setResto(max_inteiros % min_inteiros);
inteiros.setQuociente(max_inteiros/min_inteiros);
System.out.println(max_inteiros + "\t\t " + min_inteiros + "\t\t " + inteiros.getQuociente() + "\t\t" + inteiros.getResto());
max_inteiros = min_inteiros;
min_inteiros = inteiros.getResto();
//lista.add(inteiros.getResto());
}
return lista;
}
JavaFX的
public class TabelaDinamica extends Application {
private TableView<Inteiros> table = new TableView<Inteiros>();
private final ObservableList<Inteiros> data = FXCollections.observableArrayList();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
// -------------------------------------------------------------------------
Scene scene = new Scene(new Group());
stage.setTitle("Table View Sample");
stage.setWidth(300);
stage.setHeight(500);
final Label label = new Label("Dynamic Table with autoColumns");
label.setFont(new Font("Arial", 16));
table.setEditable(true);
// -------------------------------------------------------------------------
int sizeColumns = 4;
for (int j = 0; j < sizeColumns; j++) {
data.add(new Inteiros(1,2,3,4));
String nome = new String("col"+j);
TableColumn col = new TableColumn();
col.setMinWidth(100);
col.setCellValueFactory(
new PropertyValueFactory<Inteiros, String>(nome));
//table.getColumns().add(j, col);
table.setItems(data);
table.getColumns().addAll(col);
}
// -------------------------------------------------------------------------
final VBox vbox = new VBox();
vbox.setSpacing(5);
vbox.setPadding(new Insets(10, 0, 0, 10));
vbox.getChildren().addAll(label, table);
((Group) scene.getRoot()).getChildren().addAll(vbox);
// -------------------------------------------------------------------------
stage.setScene(scene);
stage.show();
}
}
public class Inteiros {
private SimpleIntegerProperty dividendo; //dividen
private SimpleIntegerProperty divisor; //divisor
private SimpleIntegerProperty quociente; //quotient
private SimpleIntegerProperty resto; //rest
Inteiros(Integer dividendo, Integer divisor, Integer quociente, Integer resto) {
this.dividendo = new SimpleIntegerProperty(dividendo);
this.divisor = new SimpleIntegerProperty(divisor);
this.quociente = new SimpleIntegerProperty(quociente);
this.resto = new SimpleIntegerProperty(resto);
}
public Integer getDividendo() {
return dividendo.get();
}
public void setDividendo(Integer int_num) {
dividendo.set(int_num);
}
public Integer getDivisor() {
return divisor.get();
}
public void setDivisor(Integer int_num) {
divisor.set(int_num);
}
public Integer getQuociente() {
return quociente.get();
}
public void setQuociente(Integer int_num) {
quociente.set(int_num);
}
public Integer resto() {
return resto.get();
}
public void setResto(Integer int_num) {
resto.set(int_num);
}
答案 0 :(得分:0)
试试这个
String[] nome = {"dividendo", "divisor", "quociente", "resto"}
int sizeColumns = 4;
for (int j = 0; j < sizeColumns; j++) {
data.add(new Inteiros(1,2,3,4));
TableColumn col = new TableColumn();
col.setMinWidth(100);
col.setCellValueFactory(new PropertyValueFactory<Inteiros, String>(nome[j]));
table.getColumns().addAll(col);
}
table.setItems(data);
因为String nome的值必须与变量的名称匹配