我们可以通过拖动表格标题中的列分隔符来调整列宽。这是 TableView 类的内置功能。
通常,光标将变为东调整大小(或西调整大小)类型,将光标定位在列标题的右侧。
但是,如果我将 JavaFX 集成到 Swing 应用程序中,我发现光标在同一位置仍然是默认类型。也就是将 TableView 添加到 Scene,然后将此 Scene 添加到 JFXPanel,最后将此 JFXPanel 添加到 JFrame。
示例代码如下:
public class Run extends JFrame {
Run() {
setSize(600, 450);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponents();
}
private void initComponents() {
final JFXPanel fxPanel = new JFXPanel();
this.getContentPane().add(fxPanel);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
}
});
}
private void initFX(JFXPanel fxPanel) {
Scene scene = null;
try {
scene = FXMLLoader.load(
new File("res/fxml_example.fxml").toURI().toURL()
);
} catch (Exception ex) {
ex.printStackTrace();
}
fxPanel.setScene(scene);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Run().setVisible(true);
}
});
}
}
fxml_example.fxml:
<?import javafx.scene.Scene?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TableColumn?>
<Scene xmlns:fx="http://javafx.com/fxml">
<TableView fx:id="tableView"
editable="true">
<columns>
<TableColumn text="COL1">
</TableColumn>
<TableColumn text="COL2">
</TableColumn>
<TableColumn text="COL3">
</TableColumn>
<TableColumn text="COL4">
</TableColumn>
<TableColumn text="COL5">
</TableColumn>
</columns>
</TableView>
</Scene>
那么,有没有人可以建议如何修复这些代码?当将此 TableView 类添加到 Swing 应用程序时,使光标可以更改为东调整大小(或西调整大小)类型?