久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用javascript編寫swing程序

 bylele 2013-01-18
在QT上可以使用QML語言來描述界面,,而QML使用的腳本語言是javascript,不過咱們做java程序的也能使用javascript來開發(fā)swing的界面,。在jdk1.6中已經(jīng)帶有Mozilla Rhino 的 JavaScript 腳本引擎,,下面用javascript編寫上一編基于郵件服務(wù)器的聊天測試http://www./pengo/archive/2010/12/11/340303.html 界面。

先在程序要指定要解析的腳本,,Main.java
import java.io.FileInputStream;
import java.io.InputStreamReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.UIManager;

public class Main {
    
public static void main(String[] args) {
        
try {
            UIManager
                    .setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            ScriptEngineManager factory 
= new ScriptEngineManager();
            
// 指定腳本語言為javascript,,engine支持很多種腳本語言
            ScriptEngine engine = factory.getEngineByName("JavaScript");
            
// 告訴腳本引擎需要加載的腳本代碼
            InputStreamReader in = new InputStreamReader(new FileInputStream(
                    
"test.js"));
            engine.eval(in);
            Invocable inv 
= (Invocable) engine;
            inv.invokeFunction(
"main");
        } 
catch (Exception e) {

            e.printStackTrace();
        }
    }
}

test.js腳本代碼
importPackage(javax.swing);
importPackage(javax.swing.border);
importPackage(java.awt.event);
importClass(java.lang.System);

var contentPane;
var messagePane;
var sentPane;
var button_1;

function main(){
    var frame 
= new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(
100100542506);
    contentPane 
= new JPanel();
    contentPane.setBorder(
new EmptyBorder(5555));
    frame.setContentPane(contentPane);
    contentPane.setLayout(
null);
    
    messagePane 
= new JTextPane();
    messagePane.setContentType(
"text/html");
    messagePane.setEditable(
false);
    var scrollPane1 
= new JScrollPane(messagePane);
    scrollPane1.setBounds(
1010506290);
    contentPane.add(scrollPane1);
    
    sentPane 
= new JEditorPane();
    var scrollPane 
= new JScrollPane(sentPane);
    scrollPane.setBounds(
10320506110);
    contentPane.add(scrollPane);
    var button 
= new JButton("關(guān)閉");
    button.addActionListener(
            
new JavaAdapter(
                    ActionListener, {
                        actionPerformed : function(event){
                            System.exit(
0);
                        }
                    }
            )
    );
    button.setBounds(
3884355827);
    contentPane.add(button);
    
    button_1 
= new JButton("發(fā)送");
    button_1.setEnabled(
false);
    
    button_1.setBounds(
4584355827);
    contentPane.add(button_1);
    
    var button_2 
= new JButton("配置");
    button_2.setBounds(
104315230);
    contentPane.add(button_2);
    
    var button_3 
= new JButton("登錄");
    button_3.setBounds(
694335230);
    contentPane.add(button_3);
    
    frame.setVisible(
true);

運(yùn)行效果:


效果還是跟以前一樣帥,

只要把規(guī)則定義好,,java(swing/swt)程序也可以像QT一樣,,定義一套類似QML的界面描述語言,方便開發(fā)中的界面設(shè)計(jì)。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多