異世界


顯示具有 Java 標籤的文章。 顯示所有文章
顯示具有 Java 標籤的文章。 顯示所有文章

2018年8月18日 星期六

JSON 資料轉換

image

using System.Windows.Forms;


namespace jgeNHttpTest
{

public partial class Form1 : Form
     {

/* [Jeremy] 測試<> :  JSON 資料轉換 (Class => JSON) */
private void RequestJsonTest(object s, HttpRequestEventArgs e)
{
     List<jUser> users = new List<jUser>();
     jUser jOne = new jUser();
     jOne.Name = "FirstOne";
     users.Add(new jUser());
     users.Add(new jUser());
    users.Add(new jUser());
     users.Add(new jUser());
     string json = JsonConvert.SerializeObject(jOne);
     string jUsers = JsonConvert.SerializeObject(users);

    using (var writer = new StreamWriter(e.Response.OutputStream))
     {
         writer.Write(string.Format("<p>string json =

                   JsonConvert.SerializeObject(jOne) : {0}</p>", json));
         writer.Write(string.Format ("<p>================</p>"));
         writer.Write(string.Format("<p>string jUsers =     

               JsonConvert.SerializeObject(users) : {0}</p>", jUsers));
      }

}


/* [Jeremy] 測試<> :  JSON 資料轉換 (Class => JSON)
private void RequestJsonTest(object s, HttpRequestEventArgs e)
  {
             List<jUser> users = new List<jUser>();
             jUser jOne = new jUser();
             jOne.Name = "FirstOne";
             users.Add(new jUser());
             users.Add(new jUser());
             users.Add(new jUser());
             users.Add(new jUser());
             string json = JsonConvert.SerializeObject(jOne);
             string jUsers = JsonConvert.SerializeObject(users);

            using (var writer = new StreamWriter(e.Response.OutputStream))
             {
                 writer.Write(string.Format("<p>string json = JsonConvert.SerializeObject(jOne) : {0}</p>", json));
                 writer.Write(string.Format("<p>=============================</p>"));
                 writer.Write(string.Format("<p>string jUsers = JsonConvert.SerializeObject(users) : {0}</p>", jUsers));
             }
         }


/* for JSON Data Test */
/* for JSON.NET => Newtonsoft.Json */
public class jUser
{
     public jUser()
     {
         Name = "jason";
         ID = "A1234567890";
         Age = 18;
         Address = "";
         Phone = "(02)111-222-333";
         Counte++;
     }
     public static int Counte { get; set; } //.. static, 不會被轉成 JSON
     public string Name { get; set; }
     public string ID { get; set; }
     public int Age { get; set; }
     public string Address { get; set; }
     public string Phone { get; set; }
}

}


   


2014年10月18日 星期六

Browser-開發人員工具

免費的網頁視覺編輯器:

 http://www.pagebreeze.com/

image

image

 

FireFox 瀏覽器進行 Debug

資料參考 : http://blog.yslifes.com/archives/699

當程式人員或網頁設計師在開發網頁時都會遇到一個問題,就是debug不易,不過自從Firefox大行其道後,這個問題被FireBug解決了,使用FireBug可以很方便的知道網頁那裡出了問題,可以直接修改CSS及html dom內容,還可以知道整個網頁到底傳輸了什麼內容及資訊等等,可說是十分好用,Microsoft在其後釋出的Internet Explorer及Google的Browser也都支援了類似的功能,不過更新的頻率並不像FireBug那麼高。

More…

 

IE8 : 可以由上方工具列的工具->開發者工具 來啟動(或F12)
Goolgle Chrome : 可以從右上角的文件按鈕->開發人員選項->開發人員工具 來啟動
FireFox FireBug :

image

image

image

2013年4月28日 星期日

使用 ANTLR 開發領域語言

ANTRL Home

ANTLR 参考手册
How to Use ANTLR on .NET

 

資料來源: http://www.ibm.com/developerworks/cn/java/j-lo-antlr/index.html?ca=drs-

內容

 

 

ANTLR簡介

  1. ANTLR語言識別的一個工具(另一種工具語言識別)是一種語言工具,它提供了一個框架,可以通過包含Java的,Ç+ +,或C#動作(動作)的語法描述來,結構語言識別性器的,編譯器的和解釋器。40年的發展已經相當成熟,使用ANTLR
  2. 語言識別的工具有很多種,比如大名鼎鼎的萊克斯和YACC的Linux中有他們的開源版本,分別是FLEX和野牛在Java的社區裡,除了ANTLR外,語言識別工具還有JavaCC的和SableCC等。
  3. 和大多數語言識別工具一樣,ANTLR的使用上下文無關文法描述語言。最新的ANTLR是一個基於LL(*)的語言識別器。在ANTLR中通過解析用戶自定義的上下文無關文法,自動生成詞法分析器(詞法分析器),語法分析器(分析器)和樹分析器(分析器樹)。

- MORE -

2013年4月21日 星期日

OpenNMS

資料來源 : http://www.opennms.org/wiki/Installation:Windows

The OpenNMS Project

 

這是 OpenNMS教程的一部分

這是 OpenNMS 教程。它將為您提供您需要有一個充分運作的 OpenNMS 安裝的基本步驟。

在每個頁面的頂部,您將看到顯示這裡您在本教程中的內容表。

教程中使用的約定

釋放

當我們使用釋放全部大寫的一詞時,指的,OpenNMS,您選擇要在本教程中的選擇釋放部分中安裝的版本。

$OPENNMS_HOME

當我們使用詞$OPENNMS_HOME,它指的您的 OpenNMS 安裝的根目錄中。這將是"/opt/opennms",基於 RPM 安裝,"/usr/share/opennms",對 Debian,或在其他平臺或源安裝上的另一條路徑。


安裝 OpenNMS =>
Windows   在 Windows 上,使用純 java"罐"安裝程式。

2012年11月19日 星期一

Java Sound, Getting Started II

資料來源 : Java Sound, Getting Started, Part 2, Playback

== 前言 ==

This series of lessons is designed to teach you how to use the Java Sound API. 

The first lesson in the series was entitled Java Sound, An Introduction

The previous lesson was entitled Java Sound, Getting Started, Part 1, Playback

This lesson, entitled Java Sound, Getting Started, Part 2, Capture using Specified Mixer, is a follow-on to the previous lesson.

…………

…………

Summary

In this lesson, I showed you how to use the Java Sound API to capture audio data from a microphone and how to save that data in a ByteArrayOutputStream object.  I also showed you how to identify the mixers available on your system, and how to specify a particular mixer for use in the acquisition of audio data from the microphone.

Complete Program Listing

A complete listing of the program is shown in Listing 12.

/*File AudioCapture02.java
This program demonstrates the capture and 
subsequent playback of audio data.
A GUI appears on the screen containing the 
following buttons:
Capture
Stop
Playback
Input data from a microphone is captured and 
saved in a ByteArrayOutputStream object when the
user clicks the Capture button.
Data capture stops when the user clicks the Stop 
button.
Playback begins when the user clicks the Playback
button.
This version of the program gets and  displays a
list of available mixers, producing the following
output:
Available mixers:
Java Sound Audio Engine
Microsoft Sound Mapper
Modem #0 Line Record
ESS Maestro
Thus, this machine had the four mixers listed 
above available at the time the program was run.
Then the program gets and uses one of the 
available mixers instead of simply asking for a 
compatible mixer as was the case in a previous 
version of the program.
Either of the following two mixers can be used in
this program:
Microsoft Sound Mapper
ESS Maestro
Neither of the following two mixers will work in
this program.  The mixers fail at runtime for 
different reasons:
Java Sound Audio Engine
Modem #0 Line Record
The Java Sound Audio Engine mixer fails due to a 
data format compatibility problem.
The Modem #0 Line Record mixer fails due to an 
"Unexpected Error"
Tested using SDK 1.4.0 under Win2000
************************************************/
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.sound.sampled.*;
 
public class AudioCapture02 extends JFrame{
 
  boolean stopCapture = false;
  ByteArrayOutputStream byteArrayOutputStream;
  AudioFormat audioFormat;
  TargetDataLine targetDataLine;
  AudioInputStream audioInputStream;
  SourceDataLine sourceDataLine;
 
  public static void main(String args[]){
    new AudioCapture02();
  }//end main
 
  public AudioCapture02(){//constructor
    final JButton captureBtn = 
                          new JButton("Capture");
    final JButton stopBtn = new JButton("Stop");
    final JButton playBtn = 
                         new JButton("Playback");
 
    captureBtn.setEnabled(true);
    stopBtn.setEnabled(false);
    playBtn.setEnabled(false);
 
    //Register anonymous listeners
    captureBtn.addActionListener(
      new ActionListener(){
        public void actionPerformed(
                             ActionEvent e){
          captureBtn.setEnabled(false);
          stopBtn.setEnabled(true);
          playBtn.setEnabled(false);
          //Capture input data from the
          // microphone until the Stop button is
          // clicked.
          captureAudio();
        }//end actionPerformed
      }//end ActionListener
    );//end addActionListener()
    getContentPane().add(captureBtn);
 
    stopBtn.addActionListener(
      new ActionListener(){
        public void actionPerformed(
                             ActionEvent e){
          captureBtn.setEnabled(true);
          stopBtn.setEnabled(false);
          playBtn.setEnabled(true);
          //Terminate the capturing of input data
          // from the microphone.
          stopCapture = true;
        }//end actionPerformed
      }//end ActionListener
    );//end addActionListener()
    getContentPane().add(stopBtn);
 
    playBtn.addActionListener(
      new ActionListener(){
        public void actionPerformed(
                             ActionEvent e){
          //Play back all of the data that was
          // saved during capture.
          playAudio();
        }//end actionPerformed
      }//end ActionListener
    );//end addActionListener()
    getContentPane().add(playBtn);
 
    getContentPane().setLayout(new FlowLayout());
    setTitle("Capture/Playback Demo");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(250,70);
    setVisible(true);
  }//end constructor
 
  //This method captures audio input from a
  // microphone and saves it in a
  // ByteArrayOutputStream object.
  private void captureAudio(){
    try{
      //Get and display a list of
      // available mixers.
      Mixer.Info[] mixerInfo = 
                      AudioSystem.getMixerInfo();
      System.out.println("Available mixers:");
      for(int cnt = 0; cnt < mixerInfo.length;
                                          cnt++){
          System.out.println(mixerInfo[cnt].
                                        getName());
      }//end for loop
 
      //Get everything set up for capture
      audioFormat = getAudioFormat();
 
      DataLine.Info dataLineInfo =
                            new DataLine.Info(
                            TargetDataLine.class,
                            audioFormat);
 
      //Select one of the available
      // mixers.
      Mixer mixer = AudioSystem.
                          getMixer(mixerInfo[3]);
      
      //Get a TargetDataLine on the selected
      // mixer.
      targetDataLine = (TargetDataLine)
                     mixer.getLine(dataLineInfo);
      //Prepare the line for use.
      targetDataLine.open(audioFormat);
      targetDataLine.start();
 
      //Create a thread to capture the microphone
      // data and start it running.  It will run
      // until the Stop button is clicked.
      Thread captureThread = new CaptureThread();
      captureThread.start();
    } catch (Exception e) {
      System.out.println(e);
      System.exit(0);
    }//end catch
  }//end captureAudio method
 
  //This method plays back the audio data that
  // has been saved in the ByteArrayOutputStream
  private void playAudio() {
    try{
      //Get everything set up for playback.
      //Get the previously-saved data into a byte
      // array object.
      byte audioData[] = byteArrayOutputStream.
                                   toByteArray();
      //Get an input stream on the byte array
      // containing the data
      InputStream byteArrayInputStream =
             new ByteArrayInputStream(audioData);
      AudioFormat audioFormat = getAudioFormat();
      audioInputStream = new AudioInputStream(
                    byteArrayInputStream,
                    audioFormat,
                    audioData.length/audioFormat.
                                 getFrameSize());
      DataLine.Info dataLineInfo = 
                            new DataLine.Info(
                            SourceDataLine.class,
                            audioFormat);
      sourceDataLine = (SourceDataLine)
               AudioSystem.getLine(dataLineInfo);
      sourceDataLine.open(audioFormat);
      sourceDataLine.start();
 
      //Create a thread to play back the data and
      // start it  running.  It will run until
      // all the data has been played back.
      Thread playThread = new PlayThread();
      playThread.start();
    } catch (Exception e) {
      System.out.println(e);
      System.exit(0);
    }//end catch
  }//end playAudio
 
  //This method creates and returns an
  // AudioFormat object for a given set of format
  // parameters.  If these parameters don't work
  // well for you, try some of the other
  // allowable parameter values, which are shown
  // in comments following the declartions.
  private AudioFormat getAudioFormat(){
    float sampleRate = 8000.0F;
    //8000,11025,16000,22050,44100
    int sampleSizeInBits = 16;
    //8,16
    int channels = 1;
    //1,2
    boolean signed = true;
    //true,false
    boolean bigEndian = false;
    //true,false
    return new AudioFormat(
                      sampleRate,
                      sampleSizeInBits,
                      channels,
                      signed,
                      bigEndian);
  }//end getAudioFormat
//=============================================//
 
//Inner class to capture data from microphone
class CaptureThread extends Thread{
  //An arbitrary-size temporary holding buffer
  byte tempBuffer[] = new byte[10000];
  public void run(){
    byteArrayOutputStream =
                     new ByteArrayOutputStream();
    stopCapture = false;
    try{//Loop until stopCapture is set by
        // another thread that services the Stop
        // button.
      while(!stopCapture){
        //Read data from the internal buffer of
        // the data line.
        int cnt = targetDataLine.read(tempBuffer,
                              0,
                              tempBuffer.length);
        if(cnt > 0){
          //Save data in output stream object.
          byteArrayOutputStream.write(tempBuffer,
                                      0,
                                      cnt);
        }//end if
      }//end while
      byteArrayOutputStream.close();
    }catch (Exception e) {
      System.out.println(e);
      System.exit(0);
    }//end catch
  }//end run
}//end inner class CaptureThread
//===================================//
//Inner class to play back the data
// that was saved.
class PlayThread extends Thread{
  byte tempBuffer[] = new byte[10000];
 
  public void run(){
    try{
      int cnt;
      //Keep looping until the input read method
      // returns -1 for empty stream.
      while((cnt = audioInputStream.read(
                        tempBuffer, 0,
                      tempBuffer.length)) != -1){
        if(cnt > 0){
          //Write data to the internal buffer of
          // the data line where it will be
          // delivered to the speaker.
          sourceDataLine.write(tempBuffer,0,cnt);
        }//end if
      }//end while
      //Block and wait for internal buffer of the
      // data line to empty.
      sourceDataLine.drain();
      sourceDataLine.close();
    }catch (Exception e) {
      System.out.println(e);
      System.exit(0);
    }//end catch
  }//end run
}//end inner class PlayThread
//=============================================//
 
}//end outer class AudioCapture02.java