我想使用循环将一种类型的所有组件添加到JGroup。这是我的第一个想法:
public class UI extends JFrame{
private JLabel aLbl;
private JLabel bLbl;
private Component someOtherComponentA;
private Component someOtherComponentB;
private JPanel panel;
public UI(){
panel = new JPanel();
panel.setLayout(new FlowLayout());
//this is what I am trying to do
for(JLabel l : Just_the_JLabels)
panel.add(l);
}
}
我想我可以使用反射来获得JLabel类型的所有字段,但是我不知道如何获得分配给该字段的对象的实例。我有一个很长的组件列表,并认为如果我不复制paste panel.add(aLbl)、panel.add(bLbl)、panel.add(cLbl)等,它在代码中会看起来更好,也不会那么乏味。
相反,我要做这样的事情:
for(Field f : this.getClass().getDeclaredFields()){
if(f.getType() == JLabel.class)
//what goes in place of "object associated with field f"
panel.add(object associated with the field f)
}
---编辑---
解决方案:公共类UI扩展了JFrame{private ArrayList=new ArrayList();
public UI(){
init();
}
public void setLbl(JLabel l){
list.add(l)
}
private init(){
setLabel(new JLabel("labelName"); //do this for each label
for(JLabel label : list)
panel.add(label);
}
}
只需创建吸气剂
我不知道你为什么使用< code >反射?
还有很多其他的方法。尽量避免< code >反射。
for (Field f : this.getClass().getDeclaredFields()) {
if (f.getType() == JLabel.class) {
// adjust the method name as per the getter/setter methods name
Method method = this.getClass().getMethod("get" + f.getName());
System.out.println(method.getName());
Object object = method.invoke(this);
if (object != null) {
System.out.println(object.getClass().getName());
}
}
}
--编辑--
尝试不使用< code >反射的方式
private List<JLabel> list = new ArrayList<JLabel>();
// set the label using setter method
// same for others also
public void setaLbl(JLabel aLbl) {
if (aLbl != null) {
// add in the list
list.add(aLbl);
}
this.aLbl = aLbl;
}
// now simply iterate the list
for(JLabel l : list){
panel.add(l);
}
我有一个来自AJAX调用的JSON数组,如下所示: 我想在数据表上使用此数据,但我想根据字段标题(组)向表中的每一行添加文本输入。因此,我想将此列添加到每个数组,类似于: 这样DataTables将在每个新行上添加文本输入。如何使用jQuery或javascript实现这一点? 我尝试通过数组进行迭代: 但这显示错误,
问题内容: 我对Java Swing还是很陌生,并且遇到了一些问题。 附带的问题是,在制作相当大的Java Swing应用程序时,拆分代码的最佳方法是什么?在我的情况下,我希望有一个布局与Microsoft Word一样的应用程序,其中的JToolBar充满按钮,而主JPanel则根据工具栏中的按钮进行更改。 因此,如下面的代码所示,我有一个JFrame并调用MainPanel类以创建面板并添加带
我对Java Swing还很陌生,遇到了一些问题。
我有两本字典Dict1和DICT2。Dict1中每个键的值如下所示: 但是Dict2由键组成,这些键是DICT1中的值。DICT2中的值是由元组组成的列表,如下所示。 我得到的当前输出是 我想要的输出应该是字典式的:
运行查询后,我从MongoDB返回一个JSON值。问题是我不想返回与我的返回相关的所有JSON,我尝试搜索文档,但没有找到正确的方法。我想知道如果可能的话会怎样,如果可能的话,正确的做法是什么。示例:在数据库中 如果某个字段为用户存在,但不返回另一个字段,那么返回该字段的正确方式是什么。对于上面的示例,我想返回RMS的字段和扎克伯格的字段。这就是我试图找到的字段是否为空,但它似乎不起作用。
问题内容: 如果我有我的Jpanel和我的JFreeChart。如何将此图表添加到JPanel中? 现在,如何在JPanle中添加图表? 问题答案: 从旧的Java论坛线程