Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从表格单元格按钮打开对话框_Java_Dialog_Swt_Tableviewer - Fatal编程技术网

Java 从表格单元格按钮打开对话框

Java 从表格单元格按钮打开对话框,java,dialog,swt,tableviewer,Java,Dialog,Swt,Tableviewer,我需要允许我的用户在我的表格中编辑文件名值。因此,在我的tableviewer中,我添加了创建和显示上一列中的编辑按钮的代码。我有这个工作 当他们点击编辑按钮时,我希望打开一个对话框,其中包含一个文本框中的文件名以及一个保存和取消按钮 所以我创建了FileNameDialog类 我的问题是:在哪里创建对话框 我是否在基本对话框中创建一个方法并从tableviewer调用该方法 class SelectionListener implements Listener { TableIt

我需要允许我的用户在我的表格中编辑文件名值。因此,在我的tableviewer中,我添加了创建和显示上一列中的编辑按钮的代码。我有这个工作

当他们点击编辑按钮时,我希望打开一个对话框,其中包含一个文本框中的文件名以及一个保存和取消按钮

所以我创建了FileNameDialog类

我的问题是:在哪里创建对话框

  • 我是否在基本对话框中创建一个方法并从tableviewer调用该方法

class SelectionListener implements Listener {
    TableItem item;
    Button editButton;
    Object element;

    public SelectionListener(TableItem item, Button deleteButton, Object element) {
        this.item = item;
        this.editButton = deleteButton;
        this.element = element;
    }

    public void handleEvent(Event event) {
        AplotPDFDataModel.FileNameData selected = (( AplotPDFDataModel.FileNameData)element);
        int index = AplotPDFDataModel.getInstance().getIndexOf(selected);
        pdfDialog.showEditFileNameDialog();  <<++++++++HERE

        Table table = getTable();
        table.getColumn(5).pack();
        table.getColumn(5).setWidth(100);
    }
} // End SelectionListener Class
public void showEditFileNameDialog() {
    editFileNameDialog = new EditFileNameDialog(getShell());
    editFileNameDialog.create();
    editFileNameDialog.getShell().setSize(300, 200);
    editFileNameDialog.open();  
}

在tableviewer中单击按钮打开对话框的最佳步骤是什么?

通常,您只需在
侦听器的
handleEvent
方法中创建并显示
对话框

要获得一个
Shell
,您可以通过以下任一操作进入
对话框:

new EditFileNameDialog(getTable().getShell());


我不太明白你的问题。这两种选择是什么?通常,您只需在
侦听器的
handleEvent
方法中创建并显示对话框。我不知道将对话框代码与tableviewer代码混合是否是一种好的做法,但将其放在那里是有意义的。我在寻找一个合适的地方。谢谢你回答了这个问题。在tableviewer中创建此对话框时,需要从tableviewer向对话框传递什么?我是否需要传入父复合,获取一个shell?我必须通过什么吗?我正在推荐我的对话类的构造函数
new EditFileNameDialog(new Shell());