java中有没有有象vb中的doEvents的方法,既我想先得到"服务正在启动...",然后当ftpServer = new TServer();运行完后再得到"服务已启动";ftpServer对象是一个死循环
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.XYConstraints;
import com.borland.jbcl.layout.*;
import java.awt.Container;
import java.awt.event.*;
import java.io.*;
public class ServerWindow extends JFrame
{
XYLayout layout=new XYLayout();
Container c;
JButton beginServer=new JButton("启动服务");
JButton stopServer=new JButton("停止服务");
JButton exit=new JButton("退出");
JTextArea textArea=new JTextArea();
JScrollPane scroll=new JScrollPane();
JLabel command=new JLabel("命令行");
JTextField commandContent = new JTextField();
JButton send=new JButton("发送");
String com;
String str="";
TServer ftpServer =null;
FtpConsole ftpconsole = null;
public ServerWindow()
{
super("服务端");
c=getContentPane();
c.setLayout(layout);
c.add(beginServer,new XYConstraints(15, 14, 98, 30));
c.add(stopServer,new XYConstraints(130, 14, 98, 30));
c.add(exit,new XYConstraints(515, 14, 60, 30));
c.add(scroll, new XYConstraints(15, 55, 560, 330));
scroll.getViewport().add(textArea,null);
c.add(command, new XYConstraints(15, 400, 40, 30));
c.add(commandContent, new XYConstraints(58, 400, 450, 30));
c.add(send, new XYConstraints(515, 400, 60, 30));
beginServer.setEnabled(true);
stopServer.setEnabled(true);
send.setEnabled(false);
setSize(600,480);
setVisible(true);
beginServer.addActionListener(new ButtonListener());
exit.addActionListener(new ButtonListener());
stopServer.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
com=e.getActionCommand();
if(com.equals("启动服务"))
{
str="服务正在启动...";
textArea.append(str+"\n");
ftpServer = new TServer();//启动ftp服务端,主要是这里的问题,谢谢大家帮个忙,解决立即给50分
str="服务已启动";
textArea.append(str+"\n");
}
if(com.equals("停止服务"))
{
ftpconsole = new FtpConsole();
ftpconsole.start();
ftpconsole.consoleQUIT();
}
if(com.equals("退出"))
{
new WindowClose().windowCloseApp();
}
}
} public static void main(String args[])
{
System.setProperty("swing.plaf.metal.controlFont", "宋体");
ServerWindow app = new ServerWindow();
}}
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.XYConstraints;
import com.borland.jbcl.layout.*;
import java.awt.Container;
import java.awt.event.*;
import java.io.*;
public class ServerWindow extends JFrame
{
XYLayout layout=new XYLayout();
Container c;
JButton beginServer=new JButton("启动服务");
JButton stopServer=new JButton("停止服务");
JButton exit=new JButton("退出");
JTextArea textArea=new JTextArea();
JScrollPane scroll=new JScrollPane();
JLabel command=new JLabel("命令行");
JTextField commandContent = new JTextField();
JButton send=new JButton("发送");
String com;
String str="";
TServer ftpServer =null;
FtpConsole ftpconsole = null;
public ServerWindow()
{
super("服务端");
c=getContentPane();
c.setLayout(layout);
c.add(beginServer,new XYConstraints(15, 14, 98, 30));
c.add(stopServer,new XYConstraints(130, 14, 98, 30));
c.add(exit,new XYConstraints(515, 14, 60, 30));
c.add(scroll, new XYConstraints(15, 55, 560, 330));
scroll.getViewport().add(textArea,null);
c.add(command, new XYConstraints(15, 400, 40, 30));
c.add(commandContent, new XYConstraints(58, 400, 450, 30));
c.add(send, new XYConstraints(515, 400, 60, 30));
beginServer.setEnabled(true);
stopServer.setEnabled(true);
send.setEnabled(false);
setSize(600,480);
setVisible(true);
beginServer.addActionListener(new ButtonListener());
exit.addActionListener(new ButtonListener());
stopServer.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
com=e.getActionCommand();
if(com.equals("启动服务"))
{
str="服务正在启动...";
textArea.append(str+"\n");
ftpServer = new TServer();//启动ftp服务端,主要是这里的问题,谢谢大家帮个忙,解决立即给50分
str="服务已启动";
textArea.append(str+"\n");
}
if(com.equals("停止服务"))
{
ftpconsole = new FtpConsole();
ftpconsole.start();
ftpconsole.consoleQUIT();
}
if(com.equals("退出"))
{
new WindowClose().windowCloseApp();
}
}
} public static void main(String args[])
{
System.setProperty("swing.plaf.metal.controlFont", "宋体");
ServerWindow app = new ServerWindow();
}}
解决方案 »
- 抗议JAVA的歧义性语法,大家看看最后值是多少?三行代码。
- sql语句
- JAVA打jar包程序不能运行问题
- 关于启动Java程序的大问题
- 请大哥们推荐几本jbulider的好书,,好网站~~~~~~~~~~~~~~~~~
- 关于在一个类中想用某一个构造器的方法调用另外一个构造方法
- stax 解析xml文件时老是报错,
- 请大虾帮我看看这句 InputStream is = getClass().getResourceAsStream("/db.properties");
- 关于Choice的用法?
- 怎么使float保留两位小数?
- 初学java!!简单问题!!
- 请问在Jpcap当中为何会找不到OpenDevice()这个方法
先谢谢你,
还是有问题,当我在那里加上如下代码时
if(com.equals("启动服务"))
{
str="服务正在启动...";
textArea.append(str+"\n");
new Thread
(
new Runnable()
{
ftpServer = new TServer();
//启动ftp服务端,主要是这里的问题,还是运行到这里截面不能操作了,也就是不能向下运行,呵呵,除了多线程之外还有什么方法,或者是我运的多线程不对(服务端有一个.accept()的死循环)
}
).start;
str="服务已启动";
textArea.append(str+"\n");
}
我加的代码有什么错误吗,麻烦帮我指出.
public void run() {
ftpServer = new TServer();
}
}
).start();