java使JFrame的操作,居中 設置標題等


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();  
    }  
}  

 

 
        

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM