我指的是我在这个问题Adding data to comboBox in GUI中写的代码。
现在我已将Gui声明为服务器。我想创建一个手动更新comboBox的按钮。我的问题是我不知道如何从GUI直接从服务器调用函数中获取数据。
E.g。功能
public void fullCombobox(List<ClientInterface> lista) throws RemoteException {}
声明进入服务器类可以使用,总是在服务器类内部,因为gui被声明到服务器中。我不知道如何直接在GUI中执行此类操作,因为我无法访问列表 客户端。在这种情况下,我的问题是获取该列表,但问题可以扩展到存储在服务器中的所有其他数据。
我该怎么做才能解决这个问题?
感谢您的建议,我希望我能说清楚。
答案 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我相信您应该清除其内容以避免添加重复/冗余项目。