Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 在一个SWT应用程序中使用另一个SWT应用程序中的文本值(字符串)。(同一软件包)_Java_Eclipse_User Interface_Swt - Fatal编程技术网

Java 在一个SWT应用程序中使用另一个SWT应用程序中的文本值(字符串)。(同一软件包)

Java 在一个SWT应用程序中使用另一个SWT应用程序中的文本值(字符串)。(同一软件包),java,eclipse,user-interface,swt,Java,Eclipse,User Interface,Swt,我创建了两个SWT应用程序,我想从第二个程序(SWT应用程序)到第一个程序使用texteditor的值,因为它在同一个包中,应该可以使用,但它不是,有人能帮我吗 方案1 package gui; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.SWT; impor

我创建了两个SWT应用程序,我想从第二个程序(SWT应用程序)到第一个程序使用texteditor的值,因为它在同一个包中,应该可以使用,但它不是,有人能帮我吗

方案1

package gui;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Text;

public class Editor {
    public static Text texteditor;

    /**
     * Launch the application.
     * @param args
     */
    public static void main(String[] args) {
        Display display = Display.getDefault();
        Shell shlNotepad = new Shell();
        shlNotepad.setSize(450, 300);
        shlNotepad.setText("Notepad");

        Menu menu = new Menu(shlNotepad, SWT.BAR);
        shlNotepad.setMenuBar(menu);

        MenuItem mntmFile_1 = new MenuItem(menu, SWT.CASCADE);
        mntmFile_1.setText("File");

        Menu menu_1 = new Menu(mntmFile_1);
        mntmFile_1.setMenu(menu_1);

        MenuItem mntmNew = new MenuItem(menu_1, SWT.NONE);
        mntmNew.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {

            }
        });
        mntmNew.setText("New");

        MenuItem mntmSave = new MenuItem(menu_1, SWT.NONE);
        mntmSave.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {


            }
        });
        mntmSave.setText("Save");

        MenuItem mntmSaveAs = new MenuItem(menu_1, SWT.NONE);
        mntmSaveAs.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                FileEditor.main(args);
            }
        });
        mntmSaveAs.setText("Save As");

        MenuItem mntmExit = new MenuItem(menu_1, SWT.NONE);
        mntmExit.setText("Exit");

        texteditor = new Text(shlNotepad, SWT.BORDER);
        texteditor.setBounds(0, 0, 434, 241);
        String texted = texteditor.getText();


        shlNotepad.open();
        shlNotepad.layout();
        while (!shlNotepad.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }
}
方案2

package gui;

import java.io.*;
import java.util.Scanner;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Text;

public class FileEditor{
    private static Text text;
    private static Text text_1;

    /**
     * Launch the application.
     * 
     * @param args
     */
    public static void main(String[] args) {

        Display display = Display.getDefault();
        Shell shlSaveAs = new Shell();
        shlSaveAs.setSize(417, 267);
        shlSaveAs.setText("Save As");
        text = new Text(shlSaveAs, SWT.BORDER);
        text.setBounds(43, 28, 163, 25);

        Button btnCreateDirectory = new Button(shlSaveAs, SWT.NONE);

        btnCreateDirectory.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {

                try {
                    Scanner in = new Scanner(System.in);
                    String directory = text.getText();
                    System.out.println(directory);

                    File dir = new File(directory);

                    dir.mkdir();

                } catch (Exception ex) {
                    ex.printStackTrace();
                }

            }
        });
        btnCreateDirectory.setBounds(276, 28, 107, 25);
        btnCreateDirectory.setText("Create Directory");

        text_1 = new Text(shlSaveAs, SWT.BORDER);
        text_1.setBounds(43, 82, 163, 23);

        Button btnNewButton = new Button(shlSaveAs, SWT.NONE);
        btnNewButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                try {
                    Scanner in = new Scanner(System.in);
                    String filename = text_1.getText();
                    String directory = text.getText();
                    System.out.println(directory);
                    File newfilenp = new File(directory, filename);
                    FileWriter fw = new FileWriter(newfilenp);
                    String datain = texted;
                    fw.write(datain);
                    fw.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
        });
        btnNewButton.setBounds(276, 80, 107, 25);
        btnNewButton.setText("Create File");

        Button btnSave = new Button(shlSaveAs, SWT.NONE);
        btnSave.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {

            }
        });
        btnSave.setBounds(168, 172, 75, 25);
        btnSave.setText("Save");

        shlSaveAs.open();
        shlSaveAs.layout();
        while (!shlSaveAs.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
    }
}

首先,你有两个主要的方法,所以有些地方已经不对劲了。除了在main中初始化一些东西之外,您不应该做任何事情,但肯定不要开始构建uit。这是两个不同的类耶,是一个程序。Java程序只有一个入口点。如果您运行两个应用程序,那么将有两个JVM在运行,并且它们之间没有通信。@Dici我知道,谢谢。