0

JAVAFX アプリケーションには、ハイパーリンクを作成する 1 つのテキスト領域があり、そのハイパーリンクをクリックすると、実行時に新しいステージが開き (1 つのテキスト領域が含まれます)、現在メインテキスト領域に来るテキストが転送されます。新しいステージの新しいテキストエリアへ。これは達成可能ですか? なにか提案を?

「actLogTArea」がハイパーリンク/ボタンを提供するテキスト領域であり、そこからメインテキスト領域に来るテキストを新しいテキスト領域に転送したいアプリケーションで以下のコードを使用しています。これがどのようにできるかを提案できますか変更されますか?

new Thread(new Runnable() {
                protected Logger logger = Logger.getLogger(UnixBoxTask.class.getName());

                public void run() {

                    try {

                        String user = userName;
                        String pass = pwd;
                        String host = lanIP;

                        JSch jsch = new JSch();
                        Session session = jsch.getSession(user, host, 22);
                        //session.setHostKeyAlias(sshHostKey);

                        java.util.Properties config = new java.util.Properties();
                        config.put("StrictHostKeyChecking", "no");
                        session.setConfig(config);


                        session.setPassword(pass);
                        session.connect();

                        BufferedReader br = new BufferedReader(new FileReader(scriptPath));
                        String line;
                        String command_cd = "";


                        // Build unix command list separated by semicolon
                        while ((line = br.readLine()) != null) {
                            if (line.charAt(0) == '.' && line.charAt(1) == '/') {
                                line = ". " + line;
                            }
                            command_cd += line + ";";
                        }

                        br.close();
                        ArrayList nameofthreads = new ArrayList();

                        StringBuilder outputFromUnix = new StringBuilder();

                        this.logger.info("Command = " + command_cd);
                        Channel channel = session.openChannel("shell");

                        if (taskName.equalsIgnoreCase(increseSRB) || taskName.equalsIgnoreCase(decreseSRB)) {
                            String keyValueFile = DeploymentTaskController.getInstance().scriptFilePath + "\\" + taskName + "_KeyValue.txt";
                            buildParameterList(keyValueFile, taskName);
                            ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
                            channelSftp.connect();
                            copyFiles(channelSftp, new File(keyValueFile), GlobalValues.getValueFromProps(taskName, "Build Path", LoginController.environment) + "/" + taskName);
                            channelSftp.disconnect();
                        }

                        channel.connect();
                        PrintStream commander = new PrintStream(channel.getOutputStream(), true);
                        commander.println(command_cd);
                        commander.println("exit;");
                        commander.close();
                        BufferedWriter bw = null;
                        InputStream outputstream_from_the_channel = channel.getInputStream();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(outputstream_from_the_channel));
                        bw = new BufferedWriter(new FileWriter(resultLogFile.getAbsolutePath(), true), 20000);


                        String jarOutput;
                       int count=0;

                        while ((jarOutput = reader.readLine()) != null) {
                            this.logger.info("Status Update = " + jarOutput);

                            bw.write(jarOutput);
                            if (jarOutput.contains("Test")) {
                                nameofthreads.add(jarOutput);
                                continue;

                            }

                                bw.newLine();
                                bw.flush();
                                outputFromUnix.append(jarOutput).append("\n");
                                // Display in activity log area in realtime.
                                if (DeploymentTaskController.actLogTArea != null && !taskName.equalsIgnoreCase(connectBundle)) {
                                    final String outputStr = outputFromUnix.toString();
                                    Platform.runLater(new Runnable() {
                                        @Override
                                        public void run() {

                                            **DeploymentTaskController.actLogTArea.setText(outputStr);
                                            DeploymentTaskController.actLogTArea.end();**

                                        }
                                    });
                                }

                            }




                            bw.close();
                            reader.close();


                            do {
                                Thread.sleep(1000);
                            } while (!channel.isEOF());



                            channel.disconnect();
                            session.disconnect();

                            Thread.sleep(1000);

                        }  catch (JSchException jex) {
                        System.out.println("JSCH Exception : " + jex.getMessage());
                    } catch (Exception ex) {


                        System.out.println("General Exception JSCH Block : " + ex.getMessage() + AppUtil.stack2string(ex));
                    }


                }
            }).start();
4

1 に答える 1