私はJavaSwingを初めて使用し、アプリケーションを作成しようとしています。
SingleFrameApplicationを拡張するMainApplication.javaファイルがあり、MainPanelという名前のJPanelを作成しています。このMainPanelには、SplitPaneという名前のVERTICAL_SPLITを持つAnimatingSplitPaneがあります。
SplitPaneの上部に、MainContainerという名前の別のJPanelを追加しています。SplitPaneの下部に、FormContainerという名前のJPanelを追加しています。MainContainerは、DataSheetTable(JTableを持つJPanel)という名前の別のクラスをロードします。
ここで、ユーザーがDataSheetTableのセルをクリックしたときに、フォームをFormContainerにロードします。わかりません、どうすればこれを達成できますか。
たとえば、datasetTableにはColumn1、Column2、およびColumn3があります。ユーザーがColumn1のいずれかのセルをクリックすると、Form1をFormContanierに表示する必要があります。Column2セルをクリックした場合は、Form2をFormContanierに表示する必要があります。
いくつかのサンプルコードで、FormContainerにフォームをその場でロードするにはどうすればよいか教えてください。
![前もって感謝します。]
App.javaのサンプルコードは次のとおりです
public class App extends SingleFrameApplication {
@Override protected void startup() {
configureDefaults();
View view = getMainView();
view.setComponent(createMainPanel());
show(view);
}
protected JComponent createMainPanel() {
// Create main panel with demo selection on left and demo/source on right
mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
// Create splitpane on right to hold demo and source code
splitPane = new AnimatingSplitPane(JSplitPane.VERTICAL_SPLIT);
mainPanel.add(splitPane, BorderLayout.CENTER);
// Create panel to contain main panel
mainContainer = new JPanel();
splitPane.setTopComponent(mainContainer);
DataSheetTable dataSheetTable = new DataSheetTable();
mainContainer.add(dataSheetTable, BorderLayout.CENTER);
dataSheetTable.start();
formContainer = new JPanel(new BorderLayout());
splitPane.setBottomComponent(formContainer);
formContainer.add(new OrganizationForm());
return mainPanel;
}
}
DataSheetTable.javaファイルのサンプルコードは次のとおりです
public class DataSheetTable extends JPanel {
........
controlPanel = createControlPanel();
add(controlPanel, BorderLayout.NORTH);
routingTable = new JTable(routingModel);
.........
}