我怎麼叫我如何調用actionPerformed方法從另一個類在java中
的actionPerformed(ActionEvent的五)
從另一種方法,那就是
returnHolder( )
在我的情況,這樣arraylist可以擁有所有那麼我可以使用servlet將數據寫入本地主機。現在,在我的
的doGet
方法,
的System.out.println( 「列表的大小爲」 +則爲list.size());
給我零。希望有人能幫助我。非常感謝。
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Dummy extends JFrame{
public static ArrayList<String> list = new ArrayList<String>();
public static ArrayList<String> holder = new ArrayList<String>();
public static JButton play;
public Dummy() {
Container content = getContentPane();
play = new JButton("fuck");
play.setEnabled(true);
PlayListener playListener = new PlayListener();
play.addActionListener(playListener);
content.add(play, BorderLayout.SOUTH);
}
class PlayListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
list.add("what");
list.add("the");
list.add("hell");
for(int i = 0; i < list.size(); i++){
holder.add(list.get(i));
}
}
}
public static ArrayList<String> returnHolder() {
//play.doClick();
return holder;
}
public static void main(String args[]) {
JFrame frame = new Dummy();
frame.pack();
frame.show();
}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.tutorials.Dummy;
public class ListJson extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ArrayList<String> list = Dummy.returnHolder();
System.out.println("size of the list is " + list.size());
resp.setContentType("application/json");
PrintWriter writer = resp.getWriter();
for(int i = 0; i < list.size(); i++) {
writer.println(list.get(i));
}
writer.flush();
writer.close();
}
}
謝謝你的幫助。我認爲doGet正在向服務器寫入json – vkosyj
我認爲你需要專用一個小時並閱讀關於servlet的一些教程,它會比嘗試去猜測它快得多。 Http servlet方法向/從http客戶端寫入或接收數據。 您的doGet會將數據寫入某些客戶端,例如瀏覽器(注意你的方法不正確,因爲你寫的不是JSON,所以你也需要一些工作)。 從你的揮杆應用程序,你想**更新**服務器上的數據。最簡單的方法是從http post發送服務器上的數據,並且需要用另一種方法處理接收到的數據,而不是返回數據的doGet。 –
實際上,您可以通過區分通過url參數獲取或更新的方式,以相同的doGet方法以稍微難看的方式處理它,但將它們分開會更清晰。 –