public static void main(String[] args) { JFrame frame = new JFrame("利用JFrame創建窗口"); // 創建指定標題的JFrame窗口對象 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關閉按鈕的動作為退出窗口 frame.setSize(400, 300); // 設置窗口大小 Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize(); // 獲得顯示器大小對象 Dimension frameSize = frame.getSize(); // 獲得窗口大小對象 if (frameSize.width > displaySize.width) frameSize.width = displaySize.width; // 窗口的寬度不能大於顯示器的寬度 frame.setLocation((displaySize.width - frameSize.width) / 2, (displaySize.height - frameSize.height) / 2); // 設置窗口居中顯示器顯示 frame.setVisible(true); // 設置窗口為可見的,默認為不可見 }
還可以用方法jFrame.setLocationRelativeTo(null); 不是對所有的都適用,
設置JFrame標題
Frame myJFrame = new JFrame("title"); //使用了構造函數
或采用繼承的frame方法
public void setTitle(String title);
myJFrmae.setTitle("title");
設置左上角的圖標
//Set the frame icon to an image loaded from a file. frame.setIconImage(new ImageIcon(imgURL).getImage());
類ImageIcon一個 Icon 接口的實現,它根據 Image 繪制 Icon。可使用 MediaTracker 預載根據 URL、文件名或字節數組創建的圖像,以監視該圖像的加載狀態。
或
jFrame.setIconImage(Toolkit.getDefaultToolkit().createImage("image/sunyanzi.png"));
或
jFrame.setIconImage(jFrame.getToolkit().getImage("C:\\yanzi.png")); //可以
JFrame設置背景圖片
JFrame是由這么幾部分組成:最底下一層JRootPane,上面是glassPane(一個JPanel)和layeredPane(一個JLayeredPane),而layeredPane又由contentPane(一個JPanel)和menuBar構成。
我們一般在JFrame上添加組件往往都是加在contentPane上面:
frame.getContentPane().add(btn);
要在JFrame上添加背景圖片,常見做法是加在layeredPane上面,並將contentPane設置成透明的即可。
// 將圖片添加到layeredPane
ImageIcon img = new ImageIcon("steve.jpg");
JLabel imgLabel = new JLabel(img);
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
...
// 將contentPane設置成透明的
((JPanel)getContentPane()).setOpaque(false);
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class bj { private JFrame frame = new JFrame("背景圖片測試"); private JPanel imagePanel ; private ImageIcon background; public bj() { background = new ImageIcon("ying.jpg");//背景圖片 JLabel label = new JLabel(background);//把背景圖片顯示在一個標簽里面 // 把標簽的大小位置設置為圖片剛好填充整個面板 label.setBounds(0,0,background.getIconWidth(),background.getIconHeight()); // 把內容窗格轉化為JPanel,否則不能用方法setOpaque()來使內容窗格透明 imagePanel = (JPanel)frame.getContentPane(); imagePanel.setOpaque(false); // 內容窗格默認的布局管理器為BorderLayout imagePanel.setLayout(new FlowLayout()); imagePanel.add(new JButton("測試按鈕")); frame.getLayeredPane().setLayout(null); // 把背景圖片添加到分層窗格的最底層作為背景 frame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(background.getIconWidth(),background.getIconHeight()); frame.setVisible(true); }
public static void main(String[] args) { new bj(); }
}
在java swing中需要為容器添加圖片,或者背景圖片。
提供兩種簡單的解決方案,一種利用JPanel,另一種利用JLabel
JPanel(源代碼) package oo; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; public class Drawing { JFrame jframe = new JFrame(); public static JPanel GImage = null; public Drawing() { initFrame(); } // 初始化窗口 public void initFrame() { // 利用JPanel添加背景圖片 GImage = new JPanel() { protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("image\\benbenla.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); jframe.setSize(icon.getIconWidth(), icon.getIconHeight()); } }; jframe.setTitle("測試背景圖片"); jframe.add(GImage); jframe.pack(); jframe.setVisible(true); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new Drawing(); } } 2.JLabel源代碼 package swing.draw; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; /** 利用JLabel來構建圖片 */ public class Drawing2 { JLabel jlpic = new JLabel(); JFrame jframe = new JFrame(); public Drawing2() { init1Frame(); } public void init1Frame() { ImageIcon icon = new ImageIcon("image\\benbenla.jpg"); icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(), icon.getIconHeight(), Image.SCALE_DEFAULT)); System.out.println(icon.getIconHeight() + "" + icon.getIconWidth()); jlpic.setBounds(0, 0, 1366, 768); jlpic.setHorizontalAlignment(0); jlpic.setIcon(icon); jframe.setSize(1366, 768); jframe.add(jlpic); jframe.pack(); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setVisible(true); } public static void main(String args[]) { new Drawing2(); } }