java 内嵌窗口程序_java如何编写出优质的窗体程序,并实现内嵌web项目

package com.kugou.jPenal;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.Cursor;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.SwingUtilities;

import chrriis.common.UIUtils;

import chrriis.dj.nativeswing.swtimpl.NativeInterface;

import

chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;

public class MainInterfaceJPenal {

private int moveX,moveY;//移动窗口的全局坐标

JPanel rootJPanel = null; //主界面面板

JPanel titleJPenal = null; //标题面板

JPanel middleJPenal = null; //中间面板

JLabel menuJLabel = null;//菜单

JLabel minimizeJLabel = null;//最小化

JLabel closeJLabel = null;//退出图标

private JLabel logoJLabel = null;

private JWebBrowser webBrowser;//窗口浏览器

public MainInterfaceJPenal(final JFrame mainJFrame, final

Container mainJPanel) {

rootJPanel = new JPanel();

rootJPanel.setBackground(new Color(79,96,184));

rootJPanel.setLayout(null);//取消默认布局

titleJPenal = new JPanel();

titleJPenal.setLayout(null);

middleJPenal = new JPanel(new BorderLayout());

//菜单

menuJLabel = new JLabel("≡",JLabel.CENTER);

menuJLabel.setForeground(Color.white);

menuJLabel.setBorder(BorderFactory.createLineBorder(new

Color(79,96,184)));

menuJLabel.setFont(new ;

menuJLabel.setBounds(647, 10, 30, 30);

menuJLabel.setToolTipText("菜单");//鼠标在这停顿时显示信息

menuJLabel.createToolTip().setBackground(new

Color(240,236,224));

titleJPenal.add(menuJLabel);

//最小化

minimizeJLabel = new JLabel("─",JLabel.CENTER);

minimizeJLabel.setForeground(Color.white);

minimizeJLabel.setBorder(BorderFactory.createLineBorder(new

Color(79,96,184)));

minimizeJLabel.setFont(new ;

minimizeJLabel.setBounds(677, 10, 30, 30);

minimizeJLabel.setToolTipText("最小化");//鼠标在这停顿时显示信息

minimizeJLabel.createToolTip().setBackground(new

Color(240,236,224));

titleJPenal.add(minimizeJLabel);

//关闭

closeJLabel = new  JLabel("╳",JLabel.CENTER);

closeJLabel.setForeground(Color.white);

closeJLabel.setBorder(BorderFactory.createLineBorder(new

Color(79,96,184)));

closeJLabel.setFont(new ;

closeJLabel.setBounds(707, 10, 30, 30);

closeJLabel.setToolTipText("关闭");//鼠标在这停顿时显示信息

closeJLabel.createToolTip().setBackground(new

Color(240,236,224));

titleJPenal.add(closeJLabel);

//logo

logoJLabel = new JLabel("自家KTV音乐系统",JLabel.CENTER);

logoJLabel.setForeground(Color.white);

logoJLabel.setBorder(BorderFactory.createLineBorder(new

Color(79,96,184)));

logoJLabel.setFont(new ;

logoJLabel.setBounds(10, 5, 300, 40);

titleJPenal.add(logoJLabel);

//设置面板背景颜色

titleJPenal.setBackground(new Color(79,96,184));

middleJPenal.setBackground(new Color(221,218,236));

//设置面板的位置

titleJPenal.setBounds(0,0,762,50);

middleJPenal.setBounds(10,20,742,515);

//把面板添加到基层面板

rootJPanel.add(titleJPenal);

rootJPanel.add(middleJPenal);

mainJPanel.add(rootJPanel,BorderLayout.CENTER);

//菜单(绑定事件)

menuJLabel.addMouseListener(new MouseAdapter(){

//点击事件

public void mouseClicked(MouseEvent e){

}

//鼠标进入事件

public void mouseEntered(MouseEvent e) {

menuJLabel.setOpaque(true);

menuJLabel.setBackground(new Color(221,80,68));

menuJLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标变成手型

}

//鼠标移出事件

public void mouseExited(MouseEvent e) {

menuJLabel.setOpaque(false);

menuJLabel.setBackground(new Color(0,104,183));

menuJLabel.setCursor(Cursor.getDefaultCursor());//鼠标变回默认

}

});

//最小化(绑定事件)

minimizeJLabel.addMouseListener(new MouseAdapter(){

//点击事件

public void mouseClicked(MouseEvent e){

mainJFrame.setExtendedState(JFrame.ICONIFIED);//窗口最小化

}

//鼠标进入事件

public void mouseEntered(MouseEvent e) {

minimizeJLabel.setOpaque(true);

minimizeJLabel.setBackground(new Color(221,80,68));

minimizeJLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标变成手型

}

//鼠标移出事件

public void mouseExited(MouseEvent e) {

minimizeJLabel.setOpaque(false);

minimizeJLabel.setBackground(new Color(0,104,183));

minimizeJLabel.setCursor(Cursor.getDefaultCursor());//鼠标变回默认

}

});

//退出(绑定事件)

closeJLabel.addMouseListener(new MouseAdapter(){

//点击事件

public void mouseClicked(MouseEvent e){

//弹出确认框,返回0或者1,0=true(yes),1=false(no)

int n = JOptionPane.showConfirmDialog(null, "你确认要退出系统吗?",

"我的音乐系统", JOptionPane.YES_NO_OPTION);

if(n==0){

mainJFrame.dispatchEvent(new

WindowEvent(mainJFrame,WindowEvent.WINDOW_CLOSING));

}

}

//鼠标进入事件

public void mouseEntered(MouseEvent e) {

closeJLabel.setOpaque(true);

closeJLabel.setBackground(new Color(221,80,68));

closeJLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标变成手型

}

//鼠标移出事件

public void mouseExited(MouseEvent e) {

closeJLabel.setOpaque(false);

closeJLabel.setBackground(new Color(0,104,183));

closeJLabel.setCursor(Cursor.getDefaultCursor());//鼠标变回默认

}

});

//绑定移动窗口事件

titleJPenal.addMouseListener(new MouseAdapter() {

public

void mousePressed(MouseEvent e) {

moveX = e.getX();

moveY = e.getY();

}

});

titleJPenal.addMouseMotionListener(new MouseMotionAdapter()

{

public

void mouseDragged(MouseEvent e) {

int left = mainJFrame.getLocation().x;

int top = mainJFrame.getLocation().y;

mainJFrame.setLocation(left + e.getX() - moveX,

top + e.getY() - moveY);

}

});

//中右面板,实现浏览器

// UIUtils.setPreferredLookAndFeel();

NativeInterface.open();

SwingUtilities.invokeLater(new Runnable() {

public void run() {

webBrowser = new JWebBrowser();

webBrowser.navigate("http://www.kugou.com/webkugouplayer/?isopen=1&chl=yueku_omnibus");

webBrowser.setButtonBarVisible(false);

webBrowser.setMenuBarVisible(false);

webBrowser.setBarsVisible(false);//是否显示[前进,返回,刷新,地址栏],true=显示,false=不显示

webBrowser.setStatusBarVisible(false);//是否显示底部的状态栏

middleJPenal.add(webBrowser,

BorderLayout.CENTER);

}

});

NativeInterface.runEventPump();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值