如何将参数传递给gui

时间:2014-07-22 20:53:21

标签: java user-interface

我指的是我在这个问题Adding data to comboBox in GUI中写的代码。

现在我已将Gui声明为服务器。我想创建一个手动更新comboBox的按钮。我的问题是我不知道如何从GUI直接从服务器调用函数中获取数据。

E.g。功能

public void fullCombobox(List<ClientInterface> lista) throws RemoteException {}

声明进入服务器类可以使用,总是在服务器类内部,因为gui被声明到服务器中。我不知道如何直接在GUI中执行此类操作,因为我无法访问列表 客户端。在这种情况下,我的问题是获取该列表,但问题可以扩展到存储在服务器中的所有其他数据。

我该怎么做才能解决这个问题?

感谢您的建议,我希望我能说清楚。

1 个答案:

答案 0 :(得分:0)

在服务器中,添加此

//...some of your code class level
clientArrayListUpdaterHelper delta;
//...moar code
public Server() throws RemoteException
{
//...more of your code
delta = new clientArrayListUpdaterHelper();
gui = new ServerGui(delta);
//...more of your code

如果您拥有您的clients.add(),请添加

delta.setClients(clients);

在它下面

在您的gui课程中,添加此

//...class level code
clientArrayListUpdaterHelper clientListHere;

public ServerGui(clientArrayListUpdaterHelper alpha) {
 clientListHere = alpha;
//...more of your code till you close your constructor

“...手动更新comboBox的按钮......”。 基本上现在你需要在单击按钮时调用的方法,所以让我们给它一个任意名称clientComboBoxRefresh。

public void clientComboBoxRefresh(java.awt.event.MouseEvent me){
 fullCombobox(clientListHere.getClients());
}

现在这个clientArrayListUpdaterHelper是什么?那应该是这样的:

public class clientArrayListUpdaterHelper{
 private java.util.List <ClientInterface> alpha;
public void setClients(java.util.List <ClientInterface> beta){
alpha = beta;
}
public java.util.List <ClientInterface> getClients(){
return alpha;
}
}

它应该工作,我不知道将抛出或遇到什么异常,可能会发生什么事情适当地处理它。我没有在IDE中编写此代码,而是直接在此浏览器中编写。使用您的JComboBox我相信您应该清除其内容以避免添加重复/冗余项目。

相关问题