为什么我的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);
}
谢谢各位指点迷经
我的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);
}
谢谢各位指点迷经
何谓没法调试?哪个组件出不来效果就要查看这个组件的用法有没有差错,祝你好运
add(panel1); 调一下顺序。
我的方法很怎么?欢迎批评,刚刚学,所以方法很笨。centerwindow(this)是自己编的一个过程为了是窗口在屏幕中央显示
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){}
}