package gui;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import listener.addHeaderListener;
import listener.removeHeaderListener;
public class headersGUI extends JDialog {
public JFrame GUI;
public JList headers;
public JTextField name;
public JTextField value;
public JButton addheader;
public JButton removeheader;
public headersGUI(JFrame initgui){
super(GUI, "Headers");
GUI=initgui;
setup();
layout();
this.pack();
this.setVisible(true);
}
public void setup(){
headers=new JList(GUI.headervalues);
headers.setLayoutOrientation(JList.VERTICAL);
name=new JTextField(10);
value=new JTextField(10);
addheader=new JButton("Add");
addheader.addActionListener(new addHeaderListener(this, GUI));
removeheader=new JButton("Remove");
removeheader.addActionListener(new removeHeaderListener(this, GUI));
}
public void layout(){
JPanel bottompanel=new JPanel();
this.getContentPane().add(headers, BorderLayout.CENTER);
bottompanel.add(new JLabel("Name: "));
bottompanel.add(name);
bottompanel.add(new JLabel("Value: "));
bottompanel.add(value);
bottompanel.add(addheader);
bottompanel.add(removeheader);
this.getContentPane().add(bottompanel, BorderLayout.SOUTH);
}
}
这是JDialog
代码,它只显示空白JDialog
我在 mac OSX 10.5.8 上使用 JDK 1.5
答案 0 :(得分:2)
您发布的代码中的错误并不明显,这就是您无法获得答案的原因。所以现在我们所能做的就是猜测,我的猜测是,传递到JDialog的数据很可能是有缺陷的,可能是你传入的是与正在显示的JFrame对象不同的JFrame对象。您应该将debug语句放入上面的代码和使用JDialog的代码中,例如:
public void setup(){
headers=new JList(GUI.headervalues);
system.out.println(/* display some property of the GUI here */ );
您应该创建并发布sscce。
顺便说一句,什么是JFrame#headervalues?这不是JFrame API的一部分。