public void initializeComponents() { workBtn = new JButton("aaa"); guestBtn = new JButton("bbb"); cancelBtn = new JButton("ccc"); cheerBtn = new JButton("ddd"); title = new JLabel("title"); nameLbl = new JLabel("name"); workingIcon = new ImageIcon("images/aaa.gif"); catchingIcon = new ImageIcon("images/bbb.gif"); workingImageLbl = new JLabel(); catchingImageLbl = new JLabel(); jSeparator = new JSeparator(); jTabbedPane = new JTabbedPane(); friendPanel = new JPanel(); housePanel = new JPanel(); fishPanel = new JPanel(); gardenPanel = new JPanel(); deviceTable = new JTable(); screenSize = Toolkit.getDefaultToolkit().getScreenSize();
我知道,我把ImageIcon放到JLabel的。
/**
*
*/
public static UserConfig userConfig;
private static final long serialVersionUID = 2361010088048362654L;
private JButton workBtn;
private JButton guestBtn;
private JButton cancelBtn;
private JButton cheerBtn;
private JLabel title;
private JLabel nameLbl;
private JSeparator jSeparator;
private JTabbedPane jTabbedPane;
private JLabel workingImageLbl;
private JLabel catchingImageLbl;
private JPanel friendPanel;
private JPanel fishPanel;
private JPanel housePanel;
private JPanel gardenPanel;
private ImageIcon workingIcon;
private ImageIcon catchingIcon;
private static JTable deviceTable;
private Dimension screenSize;
public MainInterFace(){
initializeComponents();
}
public void initializeComponents() {
workBtn = new JButton("aaa");
guestBtn = new JButton("bbb");
cancelBtn = new JButton("ccc");
cheerBtn = new JButton("ddd");
title = new JLabel("title");
nameLbl = new JLabel("name");
workingIcon = new ImageIcon("images/aaa.gif");
catchingIcon = new ImageIcon("images/bbb.gif");
workingImageLbl = new JLabel();
catchingImageLbl = new JLabel();
jSeparator = new JSeparator();
jTabbedPane = new JTabbedPane();
friendPanel = new JPanel();
housePanel = new JPanel();
fishPanel = new JPanel();
gardenPanel = new JPanel();
deviceTable = new JTable();
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setTitle("main");
this.setSize(500, 400);
this.setLocation(screenSize.width / 4, screenSize.height / 4);
this.setResizable(false);
this.setModal(true);
this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(null);
friendPanel.setLayout(null);
fishPanel.setLayout(null);
housePanel.setLayout(null);
gardenPanel.setLayout(null);
//Components of basic information
nameLbl.setBounds(22, 55, 79, 20);
title.setBounds(165, 10, 200, 20);
jSeparator.setBounds(20, 35, 455, 1);
jTabbedPane.setBounds(20, 100, 455, 200);
//Components of house panel
workBtn.setBounds(70, 100, 80, 26);
guestBtn.setBounds(300, 100, 80, 26);
workingImageLbl.setIcon(workingIcon);
workingImageLbl.setBounds(87, 40, 80, 60);
catchingImageLbl.setIcon(catchingIcon);
catchingImageLbl.setBounds(315, 40, 80, 60);
housePanel.add(workingImageLbl);
housePanel.add(catchingImageLbl);
housePanel.add(workBtn);
housePanel.add(guestBtn);
//Components of friend panel
cheerBtn.setBounds(70, 100, 80, 26);
friendPanel.add(cheerBtn); deviceTable.setBackground(Color.white);
deviceTable.setShowGrid(false);
deviceTable.setShowVerticalLines(true);
cancelBtn.setBounds(394, 320, 80, 26);
jTabbedPane.add(" A ",housePanel);
jTabbedPane.add(" B ",fishPanel);
jTabbedPane.add(" C ",gardenPanel);
jTabbedPane.add(" D ",friendPanel);
cancelBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelBtnActionPerformed(evt);
}
});
workBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
workBtnActionPerformed(evt);
}
});
guestBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
guestBtnActionPerformed(evt);
}
});
this.add(cancelBtn);
this.add(title);
this.add(nameLbl);
this.add(jSeparator);
this.add(jTabbedPane);
}
/**
* Perform action when user click cancelBtn
* @param evt : Action Event
*/
private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
/**
* Perform action when user click workBtn
* @param evt : Action Event
*/
private void workBtnActionPerformed(java.awt.event.ActionEvent evt) {
WorkTask wt = new WorkTask(userConfig);
if(wt.execute() != null){
showErrorMessage(wt.execute());
}else{
showErrorMessage(".....-_-!");
}
}
/**
* Perform action when user click guestBtn
* @param evt : Action Event
*/
private void guestBtnActionPerformed(java.awt.event.ActionEvent evt) {
BuyHouseTask bht = new BuyHouseTask(userConfig);
if(bht.execute() != null){
showErrorMessage(bht.execute());
}else{
showErrorMessage(".....-_-!");
}
}
/**
* display error message dialog
* @param errorMessage : error message
*/
private void showErrorMessage(String errorMessage) {
JOptionPane.showMessageDialog(this, errorMessage, "Error",JOptionPane.YES_OPTION);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
MainInterFace mif = new MainInterFace();
mif.initializeComponents();
mif.setVisible(true);
}
}
为了能执行,注释掉不存在的类,代码如下:import java.awt.*;
import javax.swing.*;public class MainInterFace extends JDialog {
/**
*
*/
//public static UserConfig userConfig;
private static final long serialVersionUID = 2361010088048362654L;
private JButton workBtn;
private JButton guestBtn;
private JButton cancelBtn;
private JButton cheerBtn;private JLabel title;
private JLabel nameLbl;private JSeparator jSeparator;
private JTabbedPane jTabbedPane;private JLabel workingImageLbl;
private JLabel catchingImageLbl;
private JPanel friendPanel;
private JPanel fishPanel;
private JPanel housePanel;
private JPanel gardenPanel;private ImageIcon workingIcon;
private ImageIcon catchingIcon;private static JTable deviceTable;
private Dimension screenSize;public MainInterFace(){
initializeComponents();
}public void initializeComponents() {
workBtn = new JButton("aaa");
guestBtn = new JButton("bbb");
cancelBtn = new JButton("ccc");
cheerBtn = new JButton("ddd");
title = new JLabel("title");
nameLbl = new JLabel("name");
workingIcon = new ImageIcon("images/aaa.gif");
catchingIcon = new ImageIcon("images/bbb.gif");
workingImageLbl = new JLabel();
catchingImageLbl = new JLabel();
jSeparator = new JSeparator();
jTabbedPane = new JTabbedPane();
friendPanel = new JPanel();
housePanel = new JPanel();
fishPanel = new JPanel();
gardenPanel = new JPanel();
deviceTable = new JTable();
screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setTitle("main");
this.setSize(500, 400);
this.setLocation(screenSize.width / 4, screenSize.height / 4);
this.setResizable(false);
this.setModal(true);
this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);this.getContentPane().setLayout(null);
friendPanel.setLayout(null);
fishPanel.setLayout(null);
housePanel.setLayout(null);
gardenPanel.setLayout(null);
//Components of basic information
nameLbl.setBounds(22, 55, 79, 20);
title.setBounds(165, 10, 200, 20);
jSeparator.setBounds(20, 35, 455, 1);
jTabbedPane.setBounds(20, 100, 455, 200);//Components of house panel
workBtn.setBounds(70, 100, 80, 26);
guestBtn.setBounds(300, 100, 80, 26);
workingImageLbl.setIcon(workingIcon);
workingImageLbl.setBounds(87, 40, 80, 60);
catchingImageLbl.setIcon(catchingIcon);
catchingImageLbl.setBounds(315, 40, 80, 60);
housePanel.add(workingImageLbl);
housePanel.add(catchingImageLbl);
housePanel.add(workBtn);
housePanel.add(guestBtn);//Components of friend panel
cheerBtn.setBounds(70, 100, 80, 26);
friendPanel.add(cheerBtn);deviceTable.setBackground(Color.white);
deviceTable.setShowGrid(false);
deviceTable.setShowVerticalLines(true);cancelBtn.setBounds(394, 320, 80, 26);jTabbedPane.add(" A ",housePanel);
jTabbedPane.add(" B ",fishPanel);
jTabbedPane.add(" C ",gardenPanel);
jTabbedPane.add(" D ",friendPanel);cancelBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelBtnActionPerformed(evt);
}
});workBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
workBtnActionPerformed(evt);
}
});guestBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
guestBtnActionPerformed(evt);
}
});this.add(cancelBtn);
this.add(title);
this.add(nameLbl);
this.add(jSeparator);
this.add(jTabbedPane);
}/**
* Perform action when user click cancelBtn
* @param evt : Action Event
*/
private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}/**
* Perform action when user click workBtn
* @param evt : Action Event
*/
private void workBtnActionPerformed(java.awt.event.ActionEvent evt) {
//WorkTask wt = new WorkTask(userConfig);
//if(wt.execute() != null){
//showErrorMessage(wt.execute());
//}else{
//showErrorMessage(".....-_-!");
//}
}/**
* Perform action when user click guestBtn
* @param evt : Action Event
*/
private void guestBtnActionPerformed(java.awt.event.ActionEvent evt) {
//BuyHouseTask bht = new BuyHouseTask(userConfig);
//if(bht.execute() != null){
//showErrorMessage(bht.execute());
//}else{
//showErrorMessage(".....-_-!");
//}
}/**
* display error message dialog
* @param errorMessage : error message
*/
private void showErrorMessage(String errorMessage) {
JOptionPane.showMessageDialog(this, errorMessage, "Error",JOptionPane.YES_OPTION);
}public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
MainInterFace mif = new MainInterFace();
mif.initializeComponents();
mif.setVisible(true);
}
}
我发现,如果在第一个子panel里添加图片就有问题,在下层就没问题.........
你设置下窗口的布局试试,用cardlayout,把你的pane都添加到选项卡中