欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中JFrame實現(xiàn)無邊框無標題方法

 更新時間:2015年05月20日 09:33:11   投稿:junjie  
這篇文章主要介紹了Java中JFrame實現(xiàn)無邊框無標題方法,本文直接給出代碼實例,需要的朋友可以參考下

很多時候我們弄一個界面,不想要默認的邊框,或者不想要右上角的那個最大化按鈕,比如qq面板上面就沒有最大化按鈕。

但是我查了很多資料都說不能直接去掉最大化按鈕,必須把整個邊框和標題都去掉,然后自己畫。。

這個測試代碼也很簡單:
《1》JFrame無邊框無標題
《2》添加背景圖片(添加背景圖片有很多方法,大致上都是圖片在JLabel里面,JLabel在Panel上面,Panel上面還有一個Panel放其它控件)
《3》創(chuàng)建ImageIcon,直接用new ImageIcon("img/aaa.jpg");創(chuàng)建的時候,圖片不能放在src包里面,放里面不行,我也不知道為什么。。。
《3》實現(xiàn)拖動。無邊框無標題之后是不能拖動了,要自己實現(xiàn)。

package com.qiantu.jframe;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;

public class JFrameNoBorder extends JFrame {
 
 public static void main(String[] args) {
 JFrameNoBorder j = new JFrameNoBorder();
 j.setVisible(true);
 }
 
 private static final long serialVersionUID = 1L;
 //用于處理拖動事件,表示鼠標按下時的坐標,相對于JFrame
 int xOld = 0;
 int yOld = 0;
 
 public JFrameNoBorder() {
 this.setLayout(null);

 //處理拖動事件
 this.addMouseListener(new MouseAdapter() {
  @Override
  public void mousePressed(MouseEvent e) {
  xOld = e.getX();
  yOld = e.getY();
  }
 });
 this.addMouseMotionListener(new MouseMotionAdapter() {
  @Override
  public void mouseDragged(MouseEvent e) {
  int xOnScreen = e.getXOnScreen();
  int yOnScreen = e.getYOnScreen();
  int xx = xOnScreen - xOld;
  int yy = yOnScreen - yOld;
  JFrameNoBorder.this.setLocation(xx, yy);
  }
 });

 //JLayeredPane用于添加兩個圖層的,一個用于背景,一個用于界面
 JLayeredPane layeredPane = new JLayeredPane();
 layeredPane.setBounds(0, 0, 200, 200);
 this.add(layeredPane);
 
 //背景Panel
 JPanel bgPanel = new JPanel();
 bgPanel.setBounds(0, 0, 200, 200);
 layeredPane.add(bgPanel);
 
 //背景圖片,添加到背景Panel里面
 JLabel bgLabel = new JLabel(new ImageIcon("img/bgImage.png"));
 bgPanel.add(bgLabel);
 
 //主界面,也就是背景上面的一層Panel
 JPanel mainPanel = new JPanel();
 mainPanel.setBounds(0, 0, 200, 200);
 mainPanel.setLayout(null);
 layeredPane.add(mainPanel);

 //關(guān)閉按鈕
 JButton closeButton = new JButton();
 closeButton.setIcon(new ImageIcon("img/closeButton.png"));
 closeButton.setBounds(170, 0, 30, 30);
 closeButton.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  System.exit(0);
  }
 });
 mainPanel.add(closeButton);
 
 this.setBounds(50,50,200,200);
 this.setUndecorated(true);
 }
}

拖動原理圖:


相關(guān)文章

  • Maven中的SnapShot版本和正式版本的區(qū)別

    Maven中的SnapShot版本和正式版本的區(qū)別

    在Nexus倉庫中,一個倉庫一般分為public(Release)倉和SNAPSHOT倉,本文詳細的介紹了SnapShot版本和正式版本的區(qū)別,感興趣的可以了解一下
    2021-06-06
  • JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹,什么是多態(tài)?多態(tài)的詳細解釋,多態(tài)的好處,多態(tài)的實際運用等
    2013-03-03
  • IDEA中的.iml文件和.idea文件的作用及意義

    IDEA中的.iml文件和.idea文件的作用及意義

    iml是 項目標識文件,每一個模塊都有一個iml文件,存儲模塊的相關(guān)信息,跟eclipse的project文件是一樣的功能,這篇文章主要介紹了IDEA中的.iml文件和.idea文件的作用,需要的朋友可以參考下
    2023-09-09
  • java中刪除文件/文件夾的3種方法示例小結(jié)

    java中刪除文件/文件夾的3種方法示例小結(jié)

    這篇文章主要介紹了java中刪除文件/文件夾的3種方法示例小結(jié),第一種是通過io刪除文件,第二種是通過Files.walk刪除文件,第三種是通過 Files.walkFileTree刪除文件,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-10-10
  • 基于SpringBoot的Docker部署實踐

    基于SpringBoot的Docker部署實踐

    在云計算和微服務(wù)架構(gòu)日益普及的今天,Docker已成為一種主流的應(yīng)用部署方式,本文將詳細介紹如何將基于Spring Boot的項目部署到Docker容器中,需要的朋友可以參考下
    2023-07-07
  • 解析Spring RestTemplate必須搭配MultiValueMap的理由

    解析Spring RestTemplate必須搭配MultiValueMap的理由

    本文給大家介紹Spring RestTemplate必須搭配MultiValueMap的理由,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友參考下吧
    2021-11-11
  • IDEA打包應(yīng)用程序的教程圖解

    IDEA打包應(yīng)用程序的教程圖解

    這篇文章主要介紹了IDEA打包應(yīng)用程序的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解

    如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解

    這篇文章主要介紹了如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 解決SpringCloud Gateway配置自定義路由404的坑

    解決SpringCloud Gateway配置自定義路由404的坑

    這篇文章主要介紹了解決SpringCloud Gateway配置自定義路由404的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 使用Java實現(xiàn)類似Comet風格的web app

    使用Java實現(xiàn)類似Comet風格的web app

    這篇文章主要介紹了使用Java實現(xiàn)類似Comet風格的web app的方法,包括客戶端的響應(yīng)和XML解析等功能,需要的朋友可以參考下
    2015-11-11

最新評論