Java 消除borderLayout中Jpanel之间的间隙
我正在向另一个JFrame中的jpanel添加一个2JPanel(中间和页首)。我想消除的两个面板(PanneaudateFirst和panneauDateFin)之间存在巨大差距。我曾尝试将它们设置为不同的配置(开始/中心、开始/结束、中心/结束),但运气不佳。如何做到这一点 编辑以获得工作代码Java 消除borderLayout中Jpanel之间的间隙,java,swing,jpanel,layout-manager,border-layout,Java,Swing,Jpanel,Layout Manager,Border Layout,我正在向另一个JFrame中的jpanel添加一个2JPanel(中间和页首)。我想消除的两个面板(PanneaudateFirst和panneauDateFin)之间存在巨大差距。我曾尝试将它们设置为不同的配置(开始/中心、开始/结束、中心/结束),但运气不佳。如何做到这一点 编辑以获得工作代码 import java.awt.BorderLayout; import java.awt.ComponentOrientation; import java.awt.Dimension; impor
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class CreerModificationAbsence extends JDialog {
private JPanel modificationAbsence1, modificationAbsence2,
modificationAbsence3, panneauDateDebut, panneauDateFin;
private JButton modifier, annuler;
private JLabel raison, prenomNomEmpl, prenomNomChef;
private JComboBox<String> raisonC, heureDebutC, heureFinC, minuteDebutC,
minuteFinC;
private JTextField prenomNomEmplT, prenomnomChefT;
private final String[] raisonAbsence = { "Malade" };
private JLabel dateDebut, dateFin;
private JTextField dateDebutT, dateFinT;
private final String[] heures = { "00" };
private final String[] minutes = { "00", "15", "30", "45" };
private BorderLayout gestionnaireComposant;
private GridLayout gridGestionnaireComposant;
private FlowLayout panneauMilieuLayout;
final FlowLayout gestionnaireComposantBas;
public CreerModificationAbsence() {
super((Frame) null, "Modification - Absence d'employé", true);
setPreferredSize(new Dimension(600, 250));
setAlwaysOnTop(true);
setResizable(false);
setLocation(400, 200);
setAlwaysOnTop(true);
gestionnaireComposant = new BorderLayout();
this.getContentPane().setLayout(gestionnaireComposant);
// Modification Panneau Haut
modificationAbsence1 = new JPanel();
gridGestionnaireComposant = new GridLayout(3, 2, 2, 2);
modificationAbsence1.setLayout(gridGestionnaireComposant);
raison = new JLabel("Raison : ");
raisonC = new JComboBox<>(raisonAbsence);
raisonC.setEditable(true);
prenomNomEmpl = new JLabel("Prénom et Nom de l'employé : ");
prenomNomEmplT = new JTextField();
prenomNomChef = new JLabel("Prénom et Nom du chef d'équipe : ");
prenomnomChefT = new JTextField();
modificationAbsence1.add(raison);
modificationAbsence1.add(raisonC);
modificationAbsence1.add(prenomNomEmpl);
modificationAbsence1.add(prenomNomEmplT);
modificationAbsence1.add(prenomNomChef);
modificationAbsence1.add(prenomnomChefT);
// Modification Panneau Milieu
modificationAbsence2 = new JPanel();
panneauDateDebut = new JPanel();
panneauDateFin = new JPanel();
panneauMilieuLayout = new FlowLayout();
panneauDateDebut.setLayout(panneauMilieuLayout);
panneauDateDebut.setPreferredSize(new Dimension(600, 0));
panneauDateDebut.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panneauDateFin.setLayout(panneauMilieuLayout);
panneauDateFin.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panneauDateFin.setPreferredSize(new Dimension(600, 113));
modificationAbsence2.setLayout(new BorderLayout(0,0));
dateDebutT = new JTextField(12);
heureDebutC = new JComboBox<>(heures);
minuteDebutC = new JComboBox<>(minutes);
dateFinT = new JTextField(12);
heureFinC = new JComboBox<>(heures);
minuteFinC = new JComboBox<>(minutes);
dateDebut = new JLabel("Date de début :");
dateFin = new JLabel("Date de fin :");
dateDebutT.setPreferredSize(new Dimension(125, 20));
dateFinT.setPreferredSize(new Dimension(125, 20));
dateDebut.setPreferredSize(new Dimension(125, 20));
dateFin.setPreferredSize(new Dimension(125, 20));
heureDebutC.setPreferredSize(new Dimension(130, 20));
minuteDebutC.setPreferredSize(new Dimension(130, 20));
heureFinC.setPreferredSize(new Dimension(130, 20));
minuteFinC.setPreferredSize(new Dimension(130, 20));
panneauDateDebut.add(dateDebut);
panneauDateDebut.add(dateDebutT);
panneauDateDebut.add(heureDebutC);
panneauDateDebut.add(minuteDebutC);
panneauDateFin.add(dateFin);
panneauDateFin.add(dateFinT);
panneauDateFin.add(heureFinC);
panneauDateFin.add(minuteFinC);
modificationAbsence2.add(panneauDateDebut, BorderLayout.CENTER);
modificationAbsence2.add(panneauDateFin, BorderLayout.PAGE_END);
// Modification Panneau Bas
modificationAbsence3 = new JPanel();
gestionnaireComposantBas = new FlowLayout(FlowLayout.RIGHT);
modificationAbsence3.setLayout(gestionnaireComposantBas);
modifier = new JButton("Modifier");
annuler = new JButton("Annuler");
modificationAbsence3.add(modifier);
modificationAbsence3.add(annuler);
this.add(modificationAbsence1, BorderLayout.NORTH);
this.add(modificationAbsence2, BorderLayout.CENTER);
this.add(modificationAbsence3, BorderLayout.SOUTH);
/*this.*/setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.pack();
/*this.*/setVisible(true);
}
public static void main(String s[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CreerModificationAbsence textf = new CreerModificationAbsence();
}
});
}
}
导入java.awt.BorderLayout;
导入java.awt.ComponentOrientation;
导入java.awt.Dimension;
导入java.awt.FlowLayout;
导入java.awt.Frame;
导入java.awt.GridLayout;
导入javax.swing.JButton;
导入javax.swing.JComboBox;
导入javax.swing.JDialog;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
公共类CreerModificationAbsence扩展JDialog{
私人JPanel修改BSCENCE 1、修改BSCENCE 2、,
修改意见3,PanneaudateFirst,panneauDateFin;
专用JButton修改器、环空器;
private JLabel raison,Prenomnommpl,prenomNomChef;
私人JComboBox raisonC、HeuredButc、heureFinC、MinutedButc、,
米努特夫公司;
私人JTextField Prenomnommplt,prenomnomChefT;
私有最终字符串[]raisonAbsence={“Malade”};
私人JLabel DateFirst,dateFin;
私人JTextField dateDebutT,dateFinT;
私有最终字符串[]heures={“00”};
私有最终字符串[]分钟={“00”、“15”、“30”、“45”};
私有边界布局管理重新组合;
私有GridLayout gridGestionnaireComposant;
专用流程布局图;
最终流程布局示意图重新组合BAS;
公共信条修改盲法(){
super((框架)空,“修改-缺勤”,真);
设置首选尺寸(新尺寸(600250));
setAlwaysOnTop(真);
可设置大小(假);
设置位置(400200);
setAlwaysOnTop(真);
gestionnaireComposant=newborderlayout();
this.getContentPane().setLayout(gestionnaireComposant);
//改性Panneau Haut
ModificationAbscence1=新的JPanel();
gridGestionnaireComposant=新的网格布局(3,2,2,2);
修改BSCENCE1.setLayout(gridGestionnaireComposant);
赖森=新的JLabel(“赖森:”);
raisonC=新JComboBox(raisonAbsence);
raisonC.setEditable(真);
prenomNomEmpl=新的JLabel(“雇佣的名称和名称:”);
prenomNomEmplT=newjtextfield();
prenomNomChef=新的JLabel(“主厨的名字和名字:”);
prenomnomChefT=新的JTextField();
修改意见1.添加(理由);
修改意见1.添加(理由C);
修改条款1.add(prenomNomEmpl);
修改条款1.添加(Prenomnemplat);
修改bsence1.add(prenomNomChef);
修改条款1.add(prenomnomChefT);
//修改Panneau环境
ModificationAbscence2=新的JPanel();
PanneauDateFirst=新的JPanel();
panneauDateFin=新的JPanel();
panneauMilieuLayout=新流程布局();
设置布局(panneaudieulayout);
PanneauDateFirst.setPreferredSize(新维度(600,0));
panneaudatefoundth.setComponentOrientation(ComponentOrientation.LEFT_到_RIGHT);
panneauDateFin.setLayout(panneauMilieuLayout);
panneauDateFin.setComponentOrientation(ComponentOrientation.LEFT_至_RIGHT);
panneauDateFin.setPreferredSize(新尺寸(600113));
修改bsence2.setLayout(新的BorderLayout(0,0));
dateDebutT=新的JTextField(12);
HEUREDBUTC=新的JComboBox(heures);
minuteDebutC=新的JComboBox(分钟);
dateFinT=新的JTextField(12);
HEURFINC=新的JComboBox(heures);
minuteFinC=新JCOMBOX(分钟);
Date处子秀=新的JLabel(“日期但:”);
dateFin=新的JLabel(“财务日期:”);
dateDebutT.setPreferredSize(新维度(125,20));
dateFinT.setPreferredSize(新维度(125,20));
setPreferredSize(新维度(125,20));
dateFin.setPreferredSize(新维度(125,20));
HeuredButc.setPreferredSize(新维度(130,20));
minuteDebutC.setPreferredSize(新维度(130,20));
heureFinC.setPreferredSize(新尺寸(130,20));
minuteFinC.设置首选尺寸(新尺寸(130,20));
panneaudate处子秀.add(date处子秀);
panneaudate处子秀.add(dateDebutT);
panneaudate处子秀.add(heuredbutc);
panneaudate处子秀.add(minuteDebutC);
panneauDateFin.add(dateFin);
panneauDateFin.add(dateFinT);
panneauDateFin.add(heureFinC);
panneauDateFin.add(minuteFinC);
修改bsence2.add(panneaudate处子秀,BorderLayout.CENTER);
修改BSCENCE2.add(panneauDateFin,BorderLayout.PAGE_END);
//改性Panneau-Bas
ModificationAbscence3=新的JPanel();
gestionnaireComposantBas=新流程布局(FlowLayout.RIGHT);
修改BSCENCE3.setLayout(GestionNaiRecomposiantBAS);
修改器=新的JButton(“修改器”);
环空器=新按钮(“环空器”);
modificationAbsence3.add(修饰符);
修改条款3.增加(环空器);
添加(修改BSCENCE1,BorderLayout.NORTH);
添加(修改bsence2,BorderLayout.CENTER);
添加(修改bsence3,BorderLayout.SOUTH);
/*此。*/setDefaultCloseOperation(在关闭时处理);
这个包();
/*此。*/setVisible(true);
}
公共静态void main(字符串s[]{
SwingUtilities.invokeLater(新的Runnable(){
@凌驾
公开募捐{
CreerModificationAbsence text=新的CreerModificationAbsence();
}
});
}
}
对于初学者(对于enders,不知道这是否是英语):不要调用setPreferredSize()
!这就是造成你所有问题的原因
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class CreerModificationAbsence extends JDialog {
private JPanel modificationAbsence1, modificationAbsence2, modificationAbsence3, panneauDateDebut, panneauDateFin;
private JButton modifier, annuler;
private JLabel raison, prenomNomEmpl, prenomNomChef;
private JComboBox<String> raisonC, heureDebutC, heureFinC, minuteDebutC, minuteFinC;
private JTextField prenomNomEmplT, prenomnomChefT;
private final String[] raisonAbsence = { "Malade" };
private JLabel dateDebut, dateFin;
private JTextField dateDebutT, dateFinT;
private final String[] heures = { "00" };
private final String[] minutes = { "00", "15", "30", "45" };
private BorderLayout gestionnaireComposant;
private GridLayout gridGestionnaireComposant;
private FlowLayout panneauMilieuLayout;
final FlowLayout gestionnaireComposantBas;
public CreerModificationAbsence() {
super((Frame) null, "Modification - Absence d'employé", true);
// setPreferredSize(new Dimension(600, 250));
setAlwaysOnTop(true);
setResizable(false);
setAlwaysOnTop(true);
gestionnaireComposant = new BorderLayout();
this.getContentPane().setLayout(gestionnaireComposant);
// Modification Panneau Haut
modificationAbsence1 = new JPanel();
gridGestionnaireComposant = new GridLayout(3, 2, 2, 2);
modificationAbsence1.setLayout(gridGestionnaireComposant);
raison = new JLabel("Raison : ");
raisonC = new JComboBox(raisonAbsence);
raisonC.setEditable(true);
prenomNomEmpl = new JLabel("Prénom et Nom de l'employé : ");
prenomNomEmplT = new JTextField();
prenomNomChef = new JLabel("Prénom et Nom du chef d'équipe : ");
prenomnomChefT = new JTextField();
modificationAbsence1.add(raison);
modificationAbsence1.add(raisonC);
modificationAbsence1.add(prenomNomEmpl);
modificationAbsence1.add(prenomNomEmplT);
modificationAbsence1.add(prenomNomChef);
modificationAbsence1.add(prenomnomChefT);
// Modification Panneau Milieu
modificationAbsence2 = new JPanel();
panneauDateDebut = new JPanel();
panneauDateFin = new JPanel();
panneauMilieuLayout = new FlowLayout();
panneauDateDebut.setLayout(panneauMilieuLayout);
panneauDateDebut.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panneauDateFin.setLayout(panneauMilieuLayout);
panneauDateFin.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
dateDebutT = new JTextField(12);
heureDebutC = new JComboBox(heures);
minuteDebutC = new JComboBox(minutes);
dateFinT = new JTextField(12);
heureFinC = new JComboBox(heures);
minuteFinC = new JComboBox(minutes);
dateDebut = new JLabel("Date de début :");
dateFin = new JLabel("Date de fin :");
panneauDateDebut.add(dateDebut);
panneauDateDebut.add(dateDebutT);
panneauDateDebut.add(heureDebutC);
panneauDateDebut.add(minuteDebutC);
panneauDateFin.add(dateFin);
panneauDateFin.add(dateFinT);
panneauDateFin.add(heureFinC);
panneauDateFin.add(minuteFinC);
modificationAbsence2.add(panneauDateDebut, BorderLayout.CENTER);
modificationAbsence2.add(panneauDateFin, BorderLayout.PAGE_END);
// Modification Panneau Bas
modificationAbsence3 = new JPanel();
gestionnaireComposantBas = new FlowLayout(FlowLayout.RIGHT);
modificationAbsence3.setLayout(gestionnaireComposantBas);
modifier = new JButton("Modifier");
annuler = new JButton("Annuler");
modificationAbsence3.add(modifier);
modificationAbsence3.add(annuler);
this.add(modificationAbsence1, BorderLayout.NORTH);
this.add(modificationAbsence2, BorderLayout.CENTER);
this.add(modificationAbsence3, BorderLayout.SOUTH);
/*this.*/setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.pack();
setLocationRelativeTo(null);
/*this.*/setVisible(true);
}
public static void main(String s[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CreerModificationAbsence textf = new CreerModificationAbsence();
}
});
}
}
panneauDateDebut = new JPanel();
panneauDateDebut.setOpaque(true);
panneauDateDebut.setBackground(Color.blue);
panneauDateFin = new JPanel();
panneauDateFin.setOpaque(true);
panneauDateFin.setBackground(Color.green);
public PageCentering() {
super((Frame) null, "Modification - Absence d'employé", true);
//setPreferredSize(new Dimension(600, 250));
...
}