itr*_*tro 2 java swing focus jtabbedpane
如何在新标签切换到之前捕获事件?在每个标签中我都有JTable,我用它的数据(删除,添加,更新)做了一些事情.我想在切换到新选项卡之前进行数据验证(保存或取消更改).我使用Java 1.5.
class ViewPanel extends JPanel 
  {
    private void Components() {
    setPreferredSize(new Dimension(700, 400));
    tabbedPane.addTab("DC", ANSFER.getIcon(),new DcTabPanel(this), "DC");
    tabbedPane.addTab("PC", THUMB4.getIcon(),new PcTabPanel(this), "PC");
    tabbedPane.addChangeListener(this);
    add(tabbedPane);
     }
     public void stateChanged(ChangeEvent e) {
     }
   }
JTabbedPane由SingleSelectionModel支持.如果扩展DefaultSingleSelectionModel,则可以覆盖setSelectedIndex方法并实现逻辑.
// in new selection model:
public void setSelectedIndex(int index) {
    // do pre-switch things here
    super.setSelectedIndex(index);
}
// in ViewPanel, on tabbedPane create:
tabbedPane.setModel(newSelectionModel);
你不能简单地使用ChangeListener的原因是因为它会在变化时触发.通过扩展选择模型,可以在选项卡更改之前触发.
| 归档时间: | 
 | 
| 查看次数: | 483 次 | 
| 最近记录: |