为什么我的panel无法显示

crazypiglrc 2009-12-28 09:28:27
为什么我的panelmisajour无法显示?初学java GUI,大家有没有好的方法去调试,感觉gui编程没法调试,或者好的学习方法,谢谢指点
我的frame:
public class FrameDVDIUT extends JFrame{

private static final long serialVersionUID = 1L;
private Toolkit tk=Toolkit.getDefaultToolkit();
//l'objet Toolkit contenant les attributs de l'environement du système local
private Dimension d=tk.getScreenSize();
//l'objet Dimension contenant les tailles de l'écran
private PanelMenueBoutton menu;
private ControleurMenu cm;
private PanelMisAJour misajour;

public FrameDVDIUT() {
//les opérations pour le frame
setTitle("DVDIUT réalisé par LI Ruochen&David Silvera&Yohan Dumas-Pilhou");
setSize(d.width*3/4,d.height*3/4);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
centerWindow(this);
setResizable(false);
setVisible(true);
FlowLayout flowlayout=new FlowLayout(FlowLayout.LEFT);
setLayout(flowlayout);


//在frame中添加panel的程序
//les opérations pour le panel mis a jour
misajour=new PanelMisAJour();
misajour.setPreferredSize(new Dimension(this.getWidth()*3/4,this.getHeight()));
misajour.setVisible(true);
misajour.setBackground(Color.red);
add(misajour);

}
我的panelmisajour
public class PanelMisAJour extends JPanel{
private ModeleDVDIut modele;

private JPanel panel1;
private JLabel labeltitre;
private JTextField titre;
private JLabel labelgenre;
private JComboBox genre;

public PanelMisAJour(){
try {
modele=new ModeleDVDIut();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setLayout(new GridLayout(10,1));

panel1=new JPanel();
labeltitre=new JLabel("Titre");
labeltitre.setSize(this.getWidth()/8,this.getHeight()/10);
panel1.add(labeltitre);
titre=new JTextField("");
titre.setSize(this.getWidth()/4,this.getHeight()/10);
panel1.add(titre);
labelgenre=new JLabel("Genre");
labelgenre.setSize(this.getWidth()/8,this.getHeight()/10);
panel1.add(labelgenre);
genre=new JComboBox();
genre.setSize(this.getWidth()/4,this.getHeight()/10);
ajoutegenre();
panel1.add(genre);
panel1.setVisible(true);
add(panel1);
}
谢谢各位指点迷经
...全文
287 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nj_dobetter 2009-12-28
  • 打赏
  • 举报
回复
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class FrameDVDIUT extends JFrame{

private static final long serialVersionUID = 1L;
private Toolkit tk=Toolkit.getDefaultToolkit();
//l'objet Toolkit contenant les attributs de l'environement du système local
private Dimension d=tk.getScreenSize();
//l'objet Dimension contenant les tailles de l'écran
//private PanelMenueBoutton menu;
//private ControleurMenu cm;
private PanelMisAJour misajour;

public FrameDVDIUT() {
//les opérations pour le frame
setTitle("DVDIUT réalisé par LI Ruochen&David Silvera&Yohan Dumas-Pilhou");
setSize(d.width*3/4,d.height*3/4);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//centerWindow(this);
setResizable(false);
JPanel pane = (JPanel)getContentPane();
//FlowLayout flowlayout=new FlowLayout(FlowLayout.LEFT);
BorderLayout flowlayout=new BorderLayout();
pane.setLayout(flowlayout);

misajour=new PanelMisAJour();
misajour.setVisible(true);
misajour.setBackground(Color.red);
pane.add(misajour,BorderLayout.CENTER);
setVisible(true);
misajour.setPreferredSize(new Dimension(this.getWidth()*3/4,this.getHeight()));
}

public static void main(String[] args){
new FrameDVDIUT();
}

}

class PanelMisAJour extends JPanel implements ComponentListener{
//private ModeleDVDIut modele;

private JPanel panel1;
private JLabel labeltitre;
private JTextField titre;
private JLabel labelgenre;
private JComboBox genre;

public PanelMisAJour(){
setLayout(new GridLayout(10,1));

panel1=new JPanel();
labeltitre=new JLabel("Titre");
//labeltitre.setSize(this.getWidth()/8,this.getHeight()/10);
panel1.add(labeltitre);
titre=new JTextField("");
//titre.setSize(this.getWidth()/4,this.getHeight()/10);
panel1.add(titre);
labelgenre=new JLabel("Genre");
//labelgenre.setSize(this.getWidth()/8,this.getHeight()/10);
panel1.add(labelgenre);
genre=new JComboBox();
//genre.setSize(this.getWidth()/4,this.getHeight()/10);
//ajoutegenre();
panel1.add(genre);
//panel1.setVisible(true);
add(panel1);
this.addComponentListener(this);
}

public void componentResized(ComponentEvent e){
System.out.println("componentResized()");
//System.out.println(this.getWidth()+","+this.getHeight());
labeltitre.setSize(this.getWidth()/8,this.getHeight()/10);
titre.setSize(this.getWidth()/4,this.getHeight()/10);
labelgenre.setSize(this.getWidth()/8,this.getHeight()/10);
genre.setSize(this.getWidth()/4,this.getHeight()/10);
}

public void componentHidden(ComponentEvent e){}
public void componentMoved(ComponentEvent e){}
public void componentShown(ComponentEvent e){}
}
crazypiglrc 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liangjunjie_123 的回复:]
感觉没错啊,不过感觉你的好多方法都很。。。。。。。比如centerWindow(this);

[/Quote]
我也感觉没错啊。。。
我的方法很怎么?欢迎批评,刚刚学,所以方法很笨。centerwindow(this)是自己编的一个过程为了是窗口在屏幕中央显示
小梁_unique 2009-12-28
  • 打赏
  • 举报
回复
感觉没错啊,不过感觉你的好多方法都很。。。。。。。比如centerWindow(this);
crazypiglrc 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zb309698998 的回复:]
panel1.setVisible(true);
add(panel1);

调一下顺序。
[/Quote]
调了没用啊。。。
crazypiglrc 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 stamp80 的回复:]
把frame当中的东西都加进去,再setvisible。这是一般规律。试试看。
何谓没法调试?哪个组件出不来效果就要查看这个组件的用法有没有差错,祝你好运
[/Quote]
我把setvisible加到最后也没显示啊,并且,我那个panel加到别的frame中就能显示啊。。。
三米 2009-12-28
  • 打赏
  • 举报
回复
panel1.setVisible(true);
add(panel1);

调一下顺序。
stamp80 2009-12-28
  • 打赏
  • 举报
回复
把frame当中的东西都加进去,再setvisible。这是一般规律。试试看。
何谓没法调试?哪个组件出不来效果就要查看这个组件的用法有没有差错,祝你好运

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧