JDialog没有呈现没有错误的内容

时间:2011-08-09 18:55:03

标签: java swing jdialog

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

1 个答案:

答案 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的一部分。