java swing怎么嵌入js

JavaScript022

java swing怎么嵌入js,第1张

import java.awt.BorderLayout

import java.awt.Toolkit

import java.awt.event.MouseEvent

import java.awt.event.MouseListener

import java.io.File

import java.io.IOException

import java.io.InputStream

import java.io.RandomAccessFile

import java.net.HttpURLConnection

import java.net.URL

import java.util.ArrayList

import java.util.Arrays

import java.util.Date

import java.util.List

import javax.swing.ImageIcon

import javax.swing.JFrame

import javax.swing.JLabel

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

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserCommandEvent

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserEvent

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserListener

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserNavigationEvent

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowOpeningEvent

import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowWillOpenEvent

import com.jacob.activeX.ActiveXComponent

import com.jacob.com.ComThread

import com.jacob.com.Dispatch

import com.jacob.com.Variant

import com.mohe.utils.system.L

/**

* 主窗体

*

* @author dxm

*

*/

public class MainFrame extends JFrame {

private static final long serialVersionUID = -6348199501339114346L

// 最后操作时间

public long lastTime = new Date().getTime()

// 浏览器窗体

private JWebBrowser webBrowser = null

private JLabel lbl = null

private JPanel panel = null

public int pageFlag = 1

/**

* 构造器

*/

public MainFrame() {

initData()

initGUI()

addListance()

}

private void initData() {

Toolkit toolkit = Toolkit.getDefaultToolkit()

this.setUndecorated(true)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setSize(600, 500)

this.setLocationRelativeTo(null)

this.setSize(toolkit.getScreenSize())

this.setLocation(0, 0)

webBrowser = new JWebBrowser()

webBrowser.navigate(Config.local + Config.index)

webBrowser.setBarsVisible(false)

webBrowser.setMenuBarVisible(false)

webBrowser.setLocationBarVisible(false)

webBrowser.setButtonBarVisible(false)

webBrowser.setStatusBarVisible(false)

ImageIcon icon = new ImageIcon(System.getProperty("user.dir") + "\\城市.gif")

File img = new File(System.getProperty("user.dir") + "\\" + Config.img)

if (img.exists()) {

icon = new ImageIcon(img.getAbsolutePath())

}

lbl = new JLabel(icon)

panel = new JPanel(new BorderLayout())

}

private void initGUI() {

panel.add(webBrowser, BorderLayout.CENTER)

this.setContentPane(panel)

}

private void addListance() {

webBrowser.addWebBrowserListener(new WebBrowserListener() {

@Override

public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ windowWillOpen")

}

@Override

public void windowOpening(WebBrowserWindowOpeningEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ windowOpening")

}

@Override

public void windowClosing(WebBrowserEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ windowClosing")

}

@Override

public void titleChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ titleChanged")

}

@Override

public void statusChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ statusChanged")

}

@Override

public void locationChanging(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ locationChanging")

}

@Override

public void locationChanged(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ locationChanged")

// 判断当前页面等级

String locationURL = arg0.getNewResourceLocation()

int index = locationURL.indexOf("pageFlag=")

if (index != -1) {

pageFlag = Integer.parseInt(locationURL.substring(index + 9, index + 10))

} else {

pageFlag = 1

}

System.out.println("____________________ pageFlag:" + pageFlag)

// 判断下载文件进行打印

index = locationURL.indexOf("fileName=")

System.out.println("____________________ file Index:" + index)

if (index != -1) {

String fs = locationURL.substring(index + 9)

L.info("______________________ fileName = " + fs)

String[] fns = fs.split(",")

try {

List<File>flist = downNetFile(Arrays.asList(fns))

doPrintDoc(flist)

} catch (IOException e) {

e.printStackTrace()

}

}

SwingUtilities.invokeLater(new Runnable() {

public void run() {

webBrowser.setVisible(false)

webBrowser.setVisible(true)

webBrowser.updateUI()

webBrowser.repaint()

panel.updateUI()

panel.repaint()

panel.validate()

}

})

}

@Override

public void locationChangeCanceled(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ locationChangeCanceled")

}

@Override

public void loadingProgressChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ loadingProgressChanged")

}

@Override

public void commandReceived(WebBrowserCommandEvent arg0) {

lastTime = new Date().getTime()

L.info("___________ commandReceived")

}

})

lbl.addMouseListener(new MouseListener() {

@Override

public void mouseReleased(MouseEvent arg0) {

}

@Override

public void mousePressed(MouseEvent arg0) {

}

@Override

public void mouseExited(MouseEvent arg0) {

}

@Override

public void mouseEntered(MouseEvent arg0) {

}

@Override

public void mouseClicked(MouseEvent arg0) {

change(2)

}

})

}

使用Swing照样可以开发出漂亮的界面.

主要的解决方案如下:

1: 合理的布局 , 搭建好界面的框架. 熟悉常用的布局, 并且布局还可以嵌套布局.  可以实现复杂而又美观的界面.

2: 适当的图片,  按钮, 背景等 都可以使用图片, 当然了为了节省系统资源, 可以使用稍微压缩得比较小的图片.

3: 搭配html , swing支持html简单的标签, 所以美化JButton ,JLabel等组件时, 可以使用一些Html标签. 来美化~~

4: 颜色调和. 界面要美观, 也可以适当的添加颜色, 但是要注意搭配和协调

5: 重写部分组件, swing自带的组件外观, 的确不太让人恭维,  但是我们可以自己根据需求进行重写.

6: 添加动态效果, 我们写javaScript经常是用来做特效的 , 我们可以借鉴一些JS特效的思路, 使用线程, 来给swing组件 等,添加动态的效果 , 比如抖动,  移动 , 滑出 等 特效~

7: 更换皮肤和外观 , 或者使用第三方的皮肤 ,比大神制作的皮肤BeautyEye ,就想当的漂亮