西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁(yè)編程開(kāi)發(fā)java → Javafx實(shí)現(xiàn)遠(yuǎn)程系統(tǒng)監(jiān)控

Javafx實(shí)現(xiàn)遠(yuǎn)程系統(tǒng)監(jiān)控

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2013/3/24 23:59:03字體大。A-A+

作者:西西點(diǎn)擊:5次評(píng)論:24次標(biāo)簽: Javafx

JAVA模擬器JavaFXv1.2綠色/CAB漢化版
  • 類(lèi)型:手機(jī)工具大。6.8M語(yǔ)言:中文 評(píng)分:4.7
  • 標(biāo)簽:
立即下載

Sun憑借JavaFX介入富互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,向Adobe的Flex和 Microsoft的Silverlight宣戰(zhàn)。它的目標(biāo)在于為創(chuàng)建橫跨桌面、互 聯(lián)網(wǎng)和移動(dòng)設(shè)備的富互聯(lián)網(wǎng)應(yīng)用提供一個(gè)基礎(chǔ)平臺(tái),這也可以看出Sun的Java系列產(chǎn)品的一個(gè)重大轉(zhuǎn)變,它不再僅僅專(zhuān)注于底層技術(shù),而是開(kāi)始創(chuàng)建完整的解 決方案。

目前的技術(shù)預(yù)覽版包括兩個(gè)主要組件:
關(guān)注于設(shè)計(jì)人員/開(kāi)發(fā)人員工作流的Nile項(xiàng)目和JavaFX Script——一個(gè)編寫(xiě)Java GUI應(yīng)用的新型說(shuō)明性語(yǔ)言(declarative language)。

實(shí)現(xiàn)功能:

1、監(jiān)控遠(yuǎn)程機(jī)器(用到ganymed-ssh2-build210.jar包)。

2、實(shí)時(shí)顯示cpu使用情況(包括系統(tǒng)進(jìn)程使用cpu、用戶進(jìn)程使用cpu以及空閑進(jìn)程使用cpu)。

3、實(shí)時(shí)系統(tǒng)內(nèi)存使用情況(包括系統(tǒng)已使用內(nèi)存以及空閑內(nèi)存)。

先看效果圖:

接口設(shè)計(jì): 1、UpdateListener接口,用于實(shí)時(shí)更新數(shù)據(jù)


public interface UpdateListener {
public void updateCPU(String user, String sys, String idle);
public void updateMemory(String used, String free);
}

  參考實(shí)現(xiàn): 定義FX圖表變量: LineChart cpuLineChart; LineChart memLineChart; 定義監(jiān)控?cái)?shù)據(jù)存儲(chǔ)變量: ObservableList<LineChart.Series> cpuLineChartSeries = FXCollections .observableArrayList(); ObservableList<LineChart.Series> memLineChartSeries = FXCollections .observableArrayList(); 核心代碼:


@Override
public void updateCPU(String user, String sys, String idle) {
cpuLineChartSeries.get(0).getData()
        .add(new LineChart.Data(cpuIndex, Float
                .parseFloat(user)));
cpuLineChartSeries.get(1).getData()
        .add(new LineChart.Data(cpuIndex, Float
                .parseFloat(sys)));
cpuLineChartSeries.get(2).getData()
        .add(new LineChart.Data(cpuIndex, Float
                .parseFloat(idle)));
NumberAxis xAxis = (NumberAxis) cpuLineChart.getXAxis();
if (cpuIndex < xAxis.getUpperBound()) {
    cpuIndex += 1;
} else {
        xAxis.setLowerBound(xAxis.getLowerBound() + 1);
        xAxis.setUpperBound(xAxis.getUpperBound() + 1);
        cpuLineChartSeries.get(0).getData().remove(0);
        cpuLineChartSeries.get(1).getData().remove(0);
        cpuLineChartSeries.get(2).getData().remove(0);
}
}
@Override
public void updateMemory(String used, String free) {
memLineChartSeries.get(0).getData()
        .add(new LineChart.Data(memIndex, Float
                .parseFloat(used) / 1024.0));
memLineChartSeries.get(1).getData()
        .add(new LineChart.Data(memIndex, Float
                .parseFloat(free) / 1024.0));
NumberAxis xAxis = (NumberAxis) memLineChart.getXAxis();
if (memIndex < xAxis.getUpperBound()) {
    memIndex += 1;
} else {
    xAxis.setLowerBound(xAxis.getLowerBound() + 1);
    xAxis.setUpperBound(xAxis.getUpperBound() + 1);
    memLineChartSeries.get(0).getData().remove(0);
    memLineChartSeries.get(1).getData().remove(0);
}
}
  2、數(shù)據(jù)解析接口


public interface DataParser {
    public String[] getCPUData(String line);
    public String[] getMemoryData(String line);
    public boolean isCPULine(String line);
    public boolean isMemoryLine(String line);
}
  Linux下數(shù)據(jù)解析參考實(shí)現(xiàn):


public String[] getCPUData(String line) {
String cpuStr = line.substring(line.indexOf("Cpu(s): ") + 8);
int indexOfUser = cpuStr.indexOf("%us,");
String user = cpuStr.substring(0, indexOfUser).trim();
int indexOfSys = cpuStr.indexOf("%sy,");
String sys = cpuStr.substring(indexOfUser + 5, indexOfSys).trim();
int indexOfIdle = cpuStr.indexOf("%id,");
int indexOfNi = cpuStr.indexOf("%ni,");
String idle = cpuStr.substring(indexOfNi + 5, indexOfIdle).trim();
return new String[] { user, sys, idle };
}
public String[] getMemoryData(String line) {
String memStr = line.substring(line.indexOf("total, ") + 7);
int indexOfUsed = memStr.indexOf("k used,");
String used = memStr.substring(0, indexOfUsed).trim();
double usedN = Double.parseDouble(used);
used = "" + (usedN / 1024.0);
int indexOfFree = memStr.indexOf("k free,");
String free = "0.5";
if (indexOfFree >= 0) {
    free = memStr.substring(indexOfUsed + 7, indexOfFree).trim();
    double freeN = Double.parseDouble(free);
    free = "" + (freeN / 1024.0);
}
return new String[] { used, free };
}
源碼地址:

點(diǎn)此獲取源碼

    java模擬器
    (4)java模擬器
    模擬器是通過(guò)模擬應(yīng)用程序的運(yùn)行環(huán)境,實(shí)現(xiàn)電腦上使用應(yīng)用程序以及玩游戲,目前最好的模擬器是。使用模擬器可以運(yùn)行各種各樣的手機(jī)程序,安裝模擬器后,現(xiàn)在手機(jī)上很多的游戲都可以在電腦上玩了喲。手機(jī)模擬器使用方法下載后,安裝。在桌面找到快捷方式運(yùn)行程序。點(diǎn)擊菜單文件載入...找到我們的手機(jī)程序可從網(wǎng)上下載,一般為格式,然后耐心等一會(huì)就可以看到運(yùn)行手機(jī)程序了。點(diǎn)擊菜單視圖模擬鍵盤(pán)可打開(kāi)模擬鍵盤(pán),左軟鍵代表手機(jī)左功...更多>>
    • 電腦java模擬器(KEmulator Lite)

      07-28 / 18.5M

      推薦理由: 有想過(guò)在電腦上運(yùn)行手機(jī)java程序嗎? 這樣就可以和用朋友的們一起玩有趣的手機(jī)網(wǎng)游了 而且還不用支付高昂
    • jbed java模擬器3.1 簡(jiǎn)體中文版

      05-16 / 983KB

      推薦理由:最完美的JAVA模擬器就是JBED了支持PPC和SP操作平臺(tái)支持后臺(tái)操作最新版的java模擬器.以解決手機(jī)QQ,java版字體
    • MRP手機(jī)JAVA模擬器240*320

      10-23 / 134KB

      推薦理由:MRP 手機(jī)由于普遍存在配置低,內(nèi)存小的緣因,對(duì)于Java模擬器不太適用,適用于mrp平臺(tái)240*320(手寫(xiě)觸摸屏)
    • JAVA模擬器JavaFXv1.2綠色/CAB漢化

      09-10 / 6.8M

      推薦理由:這個(gè)軟件是SUN公司出品的(不是說(shuō)sun和微軟是死敵嗎?小小的奇怪下)這幾天試用下來(lái),整體感覺(jué)不錯(cuò)。也有些

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(24)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
    推薦文章

    沒(méi)有數(shù)據(jù)