欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java 教案-第12章 GUI初步五篇

      時間:2019-05-12 18:49:45下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Java 教案-第12章 GUI初步》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Java 教案-第12章 GUI初步》。

      第一篇:Java 教案-第12章 GUI初步

      第12章 GUI初步

      12.1 介紹(Introduction)

      為JavaGUI程序設計應用程序接口(API)是面向?qū)ο缶幊套罹实膬?nèi)容,圖形用戶界面(GUI)可以通過鍵盤或鼠標來響應用戶的操作。這章首先介紹GUI編程基礎(chǔ),然后用GUI來講述面向?qū)ο缶幊?,特別是要講框架和組件的關(guān)系,包括容器,布局管理器,顏色,字體,邊框和圖標等。12.2 Swing和AWT 前面第8章,稍微介紹了一些面向?qū)ο缶幊痰腉UI例子,顯示GUI組件,使用了諸如Jbutton,Jlabel等GUI組件。為什么這些GUI前會有一個J?為什么不用Button?事實上,在java.awt包中已經(jīng)有一個名為Button的類。

      當Java問世的時候,稱AWT(Abstract Windows Toolkit)的GUI類就被綁定在類庫中。對于開發(fā)簡單的圖形用戶界面,AWT是勝任的,但如果開發(fā)綜合,復雜的GUI工程卻力不從心。另外,AWT是依賴于平臺的,即AWT組件的樣式與它使用的底層平臺相似。新版本中,許多AWT的用戶界面組件被一個更魯棒,靈活,通用的Swing組件代替。Swing組件使用Java代碼編寫,被直接應用在程序上,而不是調(diào)用底層的平臺服務。但java.awt.Window或java.awt.Panel的子類除外,因為他們必須使用特定平臺本地的GUI來繪制。Swing組件很少依賴目標平臺,很少使用平臺下的本地GUI程序,鑒于此,把它稱為輕量級組件,而AWT稱為重量級組件。

      為了和AWT組件進行區(qū)分,Swing組件的類命名加前綴J,盡管AWT組件依然被現(xiàn)在版本的Java支持,但最好使用輕量級組件,因為AWT最終會淡出歷史舞臺,也因此,只介紹Swing組件。12.3 Java GUI與 API GUI的API包含的類可以被分為3類,組件類,容器類,幫助類。它們的層次關(guān)系如圖所示。

      組件類,如Jbutton等用來創(chuàng)建用戶界面。容器類,如Jframe,Jpanel和Japplet等用來盛載其他組件。幫助類,如Graphics,Color等用來支持GUI組件。

      注意:Jframe,Japplet,Jdialog和Jcomponent類和它們的子類被組織在Javax.swing包中,其他的類被組織在AWT包中。12.3.1 Component類

      Component的實例可以被顯示在屏幕上。Component是所有用戶界面類的根類(父類),包含Container類。Jcomponent類是所有輕量級組件的根類。Componet和Jcomponent都是抽象類(14章講解)。現(xiàn)在只需要知道抽象類和類相似,僅僅是不能創(chuàng)建實例就可以了。例如,不可以使用new JComponent()來創(chuàng)建一個Jcomponent對象,但可以使用它非抽象子類的構(gòu)造方法來創(chuàng)建Jcomponent實例。熟練掌握繼承的層次關(guān)系非常重要,如下述語句都顯示true。

      12.3.2 Container類

      Container類的實例可以盛載Component的實例,是GUI組件,它用來盛載其他GUI組件的。Window,Panel,Applet,F(xiàn)rame和Dialog都是AWT組件的容器類。為了配合Swing組件,使用Container,Jframe,Jdialog,Japplet和Jpanel類容易,如下圖所述。

      12.3.3 幫助類

      如Graphics,Color,F(xiàn)ont,F(xiàn)ontMetrics,Dimension和LayoutManager等類是幫助類,它們不是Component的子類。它們用來描述GUI組件的特性,屬性,如下圖所示。

      注意:幫助類在AWT包中,Swing組件不能替換所有的AWT,它替換的只有AWT的GUI組件類,因此AWT幫助類仍然在GUI編程中用處很大。12.4 Frames框架

      為了創(chuàng)建用戶界面,需要創(chuàng)建一個frame或一個applet(18章介紹)容器來放置用戶界面組件。12.4.1 創(chuàng)建Frame 使用Jframe類來創(chuàng)建一個框架frame,如下所示。

      使用Jframe創(chuàng)建一個frame窗口,如下程序。

      框架frame的可見性默認為false,因此必須使用frame.setVisible(true)來顯示框架。語句frame.setSize(400,300),設置框架窗口寬400,高300像素,如果不設置大小,則只顯示一個標題欄,運行程序后在屏幕顯示如下。

      Line 7使得frame在屏幕中間顯示,line8告訴程序當frame被關(guān)閉時終止,沒有此語句,程序?qū)⒉荒芙K止,這種情況下只能在Dos(windows平臺)命令提示符下,使用Ctrl+C來終止,在Eclipse中將使用紅色終止按鈕來終止程序。

      注意:要在調(diào)用居中語句前設置窗口大小,否則無效。12.4.2 在Frame中添加組件

      使用add方法可以為Frame添加組件,如圖所示程序。

      每一個JFrame都包含一個content pane(內(nèi)容面板),內(nèi)容面板是Container的一個實例。如按鈕等GUI組件會被放置在frame的content pane中。在Java早期版本,必須使用getContentPane方法來返回frame的content pane,然后調(diào)用content pane的add方法為其添加組件,如下所示(教程中示例如此)。

      這是非常笨重的,從java 5以后的新版本允許直接調(diào)用frame的add方法來為content pane添加組件,如下:

      這個新特性稱content-pane授權(quán)(給frame),嚴格的說,是一個組件被添加到frame的content pane。為簡單,稱把組件添加到frame中。

      一個JButton對象使用new Jbutton(“OK”);來創(chuàng)建,使用frame.add(jbtOK)被添加到frame的content pane中。方法add(Compunent comp)定義在Container類中,因為JButton是Component的子類,因此Jbutton的實例同樣也是Component的實例,從容器中刪除組件使用remove方法,使用方式:Container.remove(jbtOK);當運行程序時,窗口會被顯示,按鈕會總是出現(xiàn)在窗口中間,不管窗口是否重新設置大小,總是占據(jù)整個窗口。原因就是組件被content pane的不僅管理器放置在窗口中,content pane的默認的布局管理器會把這個按鈕放置在窗口的中央。下節(jié)會學習使用其他幾種布局管理器,把組件放置在期望的位置。12.5 布局管理器

      介紹3種布局管理器,F(xiàn)lowLayout,GridLayout和BorderLayout。12.5.1 FlowLayout FlowLayout是最簡單的布局管理器,稱流式布局管理器。組件被從左到右,從上到下的,按它被添加的順序放置在窗口中。當一行滿之后,會另起一行。類中包含三個常量,設置組件的對齊方式,F(xiàn)lowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEFT。也可以使用分割線來分割組件,如下所示FlowLayout類圖:

      下列程序給出一個流式布局,添加三個標簽和三個文本框。

      為什么使用如上程序來構(gòu)造一個窗口?原因有三:

      1.創(chuàng)建一個GUI應用意味著創(chuàng)建一個窗口框架,很自然會定義成Jframe的子類。2.frame會被擴展出新的組件或方法函數(shù)。

      3.這個類易于重用,例如可以通過創(chuàng)建多個類的實例來創(chuàng)建多個窗口。

      同時這種構(gòu)造程序的方式易讀。從今以后,大多數(shù)GUI主類會擴展JFrame類,主類的構(gòu)造方法會構(gòu)造用戶界面。主方法創(chuàng)建一個主類的實例并顯示窗口框架。

      這個例子中FlowLayout布局管理器用來放置組件,如果重新調(diào)整窗口大小,組件也會自動被重新安排,如上圖所示。如果把line10語句用setLayout(new FlowLayout(FlowLayout.RIGHT,0,0))來替換,所有組件會被左對齊,并且中間沒有間隔線。

      等價語句如下:

      假設把一個按鈕用add方法加入10次,是否會出現(xiàn)10個相同的按鈕?答案是不會,只會出現(xiàn)一個。不要忘記在設置布局中使用new,如setLayout(new FlowLayout()).12.5.2 GridLayout GridLayout也稱網(wǎng)格布局(矩陣布局),組件按被添加的先后順序放置在網(wǎng)格中,放置順序從左到右,從上到下,如下是網(wǎng)格布局類的UML類圖。

      可以設定網(wǎng)格的行和列數(shù),基本原則如下:

      1.行數(shù)或列數(shù)可以為0,但不能都為0.如果一個為0,另外一個不為0,那么非0的維數(shù)被設定,0維數(shù)由布局管理器動態(tài)決定。如,設置0行3列,包含10個組件,那么GridLayout會創(chuàng)建固定的3列,并動態(tài)生成4行,最后一行包含一個組件。如果設定3行0列,10個組件,那么固定為3行,動態(tài)設定4列,最后一行包含2個組件。

      2.如果行和列都不為0,行數(shù)為主導參數(shù),即行數(shù)被固定,列數(shù)自動計算生成。如果設定3行3列,10個組件,那么會設置3行固定,4列動態(tài)設定,最后一行包含2個組件。如下列所示程序使用網(wǎng)格布局。

      如果重新設定框架大小,布局的按鈕保持不變,網(wǎng)格布局中所有的組件給出相同的大小。

      把line10用setLayout(new GridLayout(3,10))來替換,仍然是3行,2列。如果定義4行2列網(wǎng)格或2行2類網(wǎng)格會怎樣?自己試驗下。前2種布局,添加組件順序非常重要,因為它決定自己在容器中的位置。

      12.5.3 BorderLayout BorderLayout把容器分為5個區(qū)域,東南西北中。通過add(Component, index),添加組件,其中index是以下5個常數(shù)之一,BorderLayout.EAST,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.NORTH或BorderLayout.CENTER,類圖如下圖所示。

      組件以合適的大小被放置在相應的區(qū)域,南北組件可以水平方向延伸,東西組件可以垂直方向延伸,中間組件可以向水平,垂直方向延伸以填滿整個空間。如下程序可以說明BorderLayout的布局,在東南西北中添加5個按鈕,標簽分別為East,South,West,North和Center。

      不必要使得組件填滿所有的5個區(qū)域,如果把East按鈕移調(diào),并重新運行程序,會發(fā)現(xiàn)中間的按鈕會向右延伸并占滿East區(qū)域。如果add方法中沒指明區(qū)域,則默認為中間區(qū)域,如此添加2個組件,則只有第二個組件會被顯示。

      12.5.4 布局管理器屬性

      布局管理器有動態(tài)調(diào)整的屬性。FlowLayout有alignment,hgap,vgap屬性??梢允褂胹etAlignment,setHgap和setVgap方法來設定對齊和垂直,水平分割。GrideLayout有rows,columns,hgap和vgap屬性,可以使用setRows, setColumns,setHgap和setVgap方法來設定行數(shù),列數(shù)即水平和垂直分割。BorderLayout有hgap和vgap屬性,可以使用setHgap和setVgap方法來設置水平和垂直分割。

      在前面的部分中,因為沒有設置布局管理器屬性,匿名的布局管理器在發(fā)揮作用。如果需要動態(tài)的改變屬性,那么布局管理器就必須顯式被一個變量引用,不能匿名??梢酝ㄟ^變量改變布局管理器的屬性值,例如下述代碼。

      12.6 Panels面板和子容器

      假設想要在一個框架中放置是個按鈕和一個文本框,按鈕按網(wǎng)格布局,但文本框要放置在分開的一行。單單使用一個容器很難達到預期要求。但可以把容器分成幾個部分,每個部分中放置一個panel,每個panel有不同的布局方式。Panel是組織界面組件的一個非常有效的子容器,需要先把組件添加到panel上,然后再把panel添加到frame上。

      Swing版本的panel是JPanel。Jpanel的默認布局方式為FlowLayout布局,但可以在創(chuàng)建對象時給定它的布局方式,如new JPanel(LayoutManager)。如下方式添加按鈕到Panel中。

      Panel可以被放置在frame中或另外一個panel中,如下把panel添加到frame中。f.add(p);

      下述代碼展示了使用panel作為子容器來創(chuàng)建一個微波爐的用戶界面。

      setLayout方法定義在Container類中。Jpanel是Container的子類,因此可以使用setLayout方法來設置panel的布局方式。為了獲得想要的布局,程序使用panel p1,網(wǎng)格布局方式來組織數(shù)字按鈕,start和stop按鈕。面板p2,布局方式為BorderLayout,放置一個文本框在north區(qū)域,而面板p1放置center區(qū)域。

      注意:值得注意的是Container類是所有其他GUI組件類的超類,每一個GUI組件都是一個容器,理論上將,可以使用setLayout方法設置按鈕上面的布局方式,添加一個組件到按鈕上面,因為所有的Container當中的公共方法都被遺傳到JButton類中,但在實踐上,卻不會想到把按鈕作為容器。12.7 Color類

      使用AWT包中的Color類可以為GUI組件設置顏色,顏色是由紅綠藍光的三原色組件構(gòu)造的,每個組件是一個整型值表達梯度(明亮和灰暗程度),從0-255,這就是所謂的RGB顏色模式。

      可以使用如下構(gòu)造方法創(chuàng)建一個顏色對象:

      r,g,b分別表示紅綠藍顏色的梯度值(不能超過255,否則會出錯),如Color color=new Color(128,100,100);可以使用setBackground(Color c)和setForeground(Color c)方法來設置組件類對象的背景顏色和前景顏色。如下設置一個按鈕的背景和前景色。

      另外,可以使用13個標準顏色(顏色常量BLACK,BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, YELLOW)定義顏色對象,如下設置按鈕前景色:

      12.8 Font類

      使用awt包中的Font類設置組件的字體樣式。Font類的構(gòu)造方法: Public Font(String name, int style, int size);可以選擇字體名字,如SansSerif,Serif,Monospaced,Dialog或DialogInput,可以選擇字體,如Font.PLAIN(0),F(xiàn)ont.BOLD(1), Font.ITALIC(2), Font.BOLD+ Font.ITALIC(3)),用正整數(shù)來設定字體大小,如圖所示下例。

      注意:如果系統(tǒng)支持其他字體,諸如“Times New Roman”,可以使用它來創(chuàng)建一個字體對象。為了找到系統(tǒng)中可用的字體,需要得到一個java.awt.GraphicsEnviroment類的實例,調(diào)用它的靜態(tài)方法getLocalGraphicsEnvironment()。這個類是一個抽象類,描述特定系統(tǒng)的圖形環(huán)境的,可以使用它的getAllFonts()方法獲得當前系統(tǒng)可用的所有字體,如下程序代碼。

      12.9 Swing GUI組件的一般屬性

      已經(jīng)使用過幾個GUI組件(如JFrame,Container, JPanel, JButton, JLabel, JTextField)除了這些組件,還有很多其他的GUI組件,因此了解SwingGUI組件的一般特性非常重要。Component類是所有GUI組件和容器類的根類。所有的Swing GUI組件(除JFrame,JApplet,JDialog)都是JComponent的子類。如圖列出Comonent,Container,和Jcomponent類常用的用于操縱屬性諸如font,color,size等方法。

      一個tooltip(提示工具)是當把鼠標移動到組件上時組件上的文本顯示,通常描述組件的作用。可以設置JComponent類任何對象的邊框。Swing有幾種類型的邊框,new TitledBorder(String title)創(chuàng)建標題邊框,new LineBorder(Color color, int width)創(chuàng)建線框,width是線的粗細。

      如下圖,程序創(chuàng)建一個panel面板p1,上面放置3個按鈕和一個面板p2,上面放置2個label標簽,按鈕jbtLeft的背景顏色設置為白色,按鈕jbtCenter的前景色設置為綠色。按鈕jbtRight的文本提示“This is the Right button”,標題邊框設置在p1和p2上,線框被設置在label標簽上。

      注意:對于不同的組件,相同的屬性會有不同的默認值,例如,visible屬性在JFrame上默認是false,但對于JComponent的任何實例,它的值卻是true。12.10 Image Icons 圖標是一個固定大小的圖像,它很小,通常用來點綴組件,圖像通常被保存在圖像文件中,java目前支持3中格式的圖片:GIF,JPEG,PNG,它們的擴展名為.gif,.jpg或.jpeg,.png。如果有一個bmp(windows支持的圖像格式)文件或其他格式的圖像,應該使用軟件轉(zhuǎn)換為java可用的三種圖像格式。

      要想顯示一個圖標,首先應該使用new javax.swing.ImageIcon(filename)創(chuàng)建一個ImageIcon對象,如下使用當前目錄中image文件夾下的us.gif文件創(chuàng)建圖標。

      其中image/us.gif的具體位置為:e:javaimageus.gif,反斜杠是windows的路徑標識,在Unix中是正斜杠,在Java中,正斜杠用來表示相對文件路徑(相對于java classpath)。

      注意:在windows操作系統(tǒng)中,文件名不區(qū)分大小寫,而在Unix中是區(qū)分大小寫的。為了確保程序在任何平臺都能運行,命名所有的圖像文件通常用小寫。

      圖標可以使用new JLabel(imageIcon)或new JButton(imageIcon)顯示在按鈕或標簽上。如下例所示,使用圖標創(chuàng)建2個標簽和2個按鈕。

      注意:GUI組件不能被容器共享,一個GUI組件在同一個時間只能出現(xiàn)在一個容器中。因此組件和容器是組合關(guān)系。邊框和圖標可以共享,因此可以創(chuàng)建一個邊框或圖標,并為任意的GUI組件設置border或icon屬性。如下左圖為2個面板p1和p2設置邊框b,右圖為2個按鈕jbt1和jtb2設置圖標。

      第二篇:java GUI圖形化界面編程總結(jié)

      GUI(Graphical User Interface)圖形化界面編程總結(jié) Java.Awt:Abstract Window ToolKit(抽象窗口工具包)Javax.Swing:

      圖形化界面基本設置:

      設置窗體大?。簊etSize(長,寬);

      設置窗體位置:setLocation(距離左,距離上);setBounds(長,寬,距離左,距離上);設置布局:setLayout(new FlowLayout()); 使窗體可見:setVisible(true); 事件監(jiān)聽機制:

      事件監(jiān)聽機制的特點: 1,事件源。2,事件。3,監(jiān)聽器。4,事件處理。

      事件源:就是awt包或者swing包中的那些圖形界面組件。事件:每一個事件源都有自己特有的對應事件和共性事件。

      監(jiān)聽器:將可以觸發(fā)某一個事件的動作(不只一個動作)都已經(jīng)封裝到了監(jiān)聽器中。

      以上三者,在java中都已經(jīng)定義好了。直接獲取其對象來用就可以了。

      我們要做的事情是,就是對產(chǎn)生的動作進行處理

      Eg:編寫程序,練習圖形化界面編程!import java.awt.*;import java.awt.event.*;import java.io.*;class MyWindowDemo { private Frame f;private TextField tf;private Button but;private TextArea ta;

      private Dialog d;private Label lab;private Button okBut;

      MyWindowDemo(){ init();} public void init(){ f = new Frame(“my window”);f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());tf = new TextField(60);but = new Button(“轉(zhuǎn)到”);ta = new TextArea(25,70);d = new Dialog(f,“提示信息-self”,true);d.setBounds(400,200,240,150);d.setLayout(new FlowLayout());lab = new Label();okBut = new Button(“確定”);d.add(lab);d.add(okBut);f.add(tf);f.add(but);f.add(ta);myEvent();f.setVisible(true);} private void myEvent(){

      okBut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

      d.setVisible(false);} });d.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

      d.setVisible(false);} });

      tf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){

      if(e.getKeyCode()==KeyEvent.VK_ENTER)

      showDir();} });

      } but.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

      showDir();

      } });f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

      System.exit(0);

      } });private void showDir(){ String dirPath = tf.getText();

      File dir = new File(dirPath);

      if(dir.exists()&& dir.isDirectory()){ ta.setText(“");String[] names = dir.list();for(String name : names){

      ta.append(name+”rn“);} } else

      {

      String info = ”您輸入的信息:“+dirPath+”是錯誤的。請重輸“;

      lab.setText(info);

      d.setVisible(true);

      } }

      public static void main(String[] args){

      new MyWindowDemo();} }

      菜單:

      MenuBar 菜單整體;Menu 包含于MenuBar中;MenuItem包含于Menu中!以上3個關(guān)系添加用add();

      將MenuBar放進Frame中用setMenuBar();

      FileDialog.LOAD:打開的mode FileDialog.Save:保存的mode 練習:一個簡易的記事本 /** 寫一個關(guān)于記事本的小程序 @author田建 @version v1.1 */

      import java.awt.*;import java.awt.event.*;import java.io.*;class MyMenuDemo { private Frame f;private TextArea ta;private MenuBar mb;private Menu me;private MenuItem miNew,miSave,miLoad;private File file;

      private FileDialog openDia,saveDia;

      MyMenuDemo(){

      init();}

      public void init(){

      f=new Frame(”田建--記事本“);

      f.setBounds(300,100,650,600);

      ta=new TextArea();

      //ta.setBounds(302,105,400,300);//f.setLayout(new FlowLayout());//為什么設置成了流式布局之后再設置文本區(qū)域沒有效果

      mb=new MenuBar();

      me=new Menu(”文件(F)“);

      miNew=new MenuItem(”新建“);

      miSave=new MenuItem(”保存(S)“);

      miLoad=new MenuItem(”打開(O)“);

      mb.add(me);

      me.add(miNew);

      me.add(miLoad);

      me.add(miSave);

      f.setMenuBar(mb);

      f.add(ta);

      openDia=new FileDialog(f,”打開文件“,FileDialog.LOAD);

      saveDia=new FileDialog(f,”保存文件“,FileDialog.SAVE);

      myEvent();

      f.setVisible(true);

      }

      public void myEvent(){

      f.addWindowListener(new WindowAdapter()

      {

      public void windowClosing(WindowEvent e)

      {

      System.exit(0);

      }

      });

      miLoad.addActionListener(new ActionListener()

      {

      public void actionPerformed(ActionEvent e)

      {

      openDia.setVisible(true);

      String dirPath=openDia.getDirectory();

      String fileName=openDia.getFile();

      if(dirPath==null||fileName==null)

      return;

      ta.setText(”“);

      file=new File(dirPath,fileName);

      try

      {

      BufferedReader bufr=new BufferedReader(new FileReader(file));

      String line=null;

      while((line=bufr.readLine())!=null)

      {

      ta.append(line+”rn“);

      }

      bufr.close();

      }

      catch(IOException ex)

      {

      throw new RuntimeException(”讀取失敗“);

      }

      }

      });

      miSave.addActionListener(new ActionListener()

      {

      public void actionPerformed(ActionEvent e)

      {

      if(file==null)

      {

      saveDia.setVisible(true);

      String dirPath=saveDia.getDirectory();

      String fileName=saveDia.getFile();

      if(dirPath==null||fileName==null)

      return;

      file=new File(dirPath,fileName);

      }

      try

      {

      BufferedWriter bufw=new BufferedWriter(new FileWriter(file));

      String text=ta.getText();

      bufw.write(text);

      bufw.close();

      }

      catch(IOException ex)

      {

      throw new RuntimeException(”");

      }

      } });

      } public static void main(String[] args){

      new MyMenuDemo();}

      } 打jar包的過程:

      1、編譯包 jar –cvf jar名 包名

      2、寫一個文件main-class: 包名.類名【加個回車】

      3、jar –cvfm jar名 文件名 包名

      配置jar執(zhí)行的過程:

      工具---文件夾選項---文件類型---新建---文件擴展名jar 然后確定----高級----修改圖標-----open------javaw的路徑—jar即可!

      第三篇:學習java的一些初步體會

      Java開發(fā)記錄

      剛開始學java,有很多不明白不是很多是幾乎全部,我把自己每學到一點都總結(jié)下來讓自己感覺更充實也希望以后能為初學者提供幫助。

      Java培訓第一天

      今天正式開始培訓,我們滿懷喜悅,感覺java一定是一門很高深的技術(shù),幻想著可以寫出很多好玩的游戲,做出很多漂亮的網(wǎng)站,可是一開學就蒙了我根本什么都聽不懂,雖然假期看了一些java基礎(chǔ),但是老師高濃縮的術(shù)語還是讓我一頭霧水,但還是有那份激情吧,我要學會,第一天就是在迷茫中度過的。老師一直在說現(xiàn)在不懂沒關(guān)系,以后用長了就好了。每天早上8:30到12:00,下午2:30到6:00晚上8:00到10:30每天接近10個小時的學習還是很充實的,我信心倍增。I believe myself。

      Java培訓第二天

      今天繼續(xù)講java基礎(chǔ),老師的節(jié)奏很快,說不要把

      (前幾天耽誤了,以后補上)

      Java培訓第七天

      這幾天已經(jīng)基本上走出了前幾天的迷茫,感覺還是挺不錯的,由開始的什么都不會到現(xiàn)在的知道老師想讓我們干什么感覺進步還是滿大的,我身邊由一個考上北京郵電大學的姐給了我很大的幫助,還有很多學長也很厲害。大家一起學習,我們3個人是大一的也是最沒有基礎(chǔ)的,有學長的帶領(lǐng)和老師的指導進步很快。感覺知識是時間得來的,在學校里我可能4年都學不會這些東西,我說的是真的起碼對我是這樣。用了兩天的時間裝環(huán)境,把64位系統(tǒng)裝成32位的(老師的演示屏幕不支持64位,沒辦法,前兩天時間不緊)后來用了兩天的時間就把java基礎(chǔ)講完了,我是什么都不懂,雖然自學了一些但絕對是九牛一毛,專業(yè)術(shù)語 面向?qū)ο?、類、封裝、繼承、多態(tài)、反射、跳轉(zhuǎn)、框架、異常捕獲、數(shù)據(jù)庫、接口等等反正我是什么都不會怕什么,我開始看書、百度、問學長(不敢問老師因為這樣的問題太白癡了)?;A(chǔ)講完了,沒感覺有什么長進,但是感覺好像沒有原來那么難理解了,花了2個多小時把基礎(chǔ)書看了一遍感覺突然懂了的感覺(呵呵)老師把大量的時間花費在讓我們敲代碼的上,第一個項目testssh2完全是在老師的指導下一個單詞敲的,老師給我們講公司做項目的框架,我聽得暈了src層,docs層,sitting層,webroot層我根本聽不懂也不知道這能干什么用,一開始學C感覺C很難,覺得很多事情都是無厘頭,但是學了java才覺得java才是真正的霸道,我根本什么邏輯都不用考慮,想實現(xiàn)什么直接調(diào)用就OK了,感覺真正寫類的人才是大牛。!!今天第二遍將框架和第一遍基本上一樣不過項目比原先大了很多基本上是公司的使用框架出了test暫時不寫之外其他的都要寫,老師給我們建一個example我們自己寫一個exercise反正是高度一致,但難度還是挺大的寫了一天了還是沒有寫完,發(fā)布了在瀏覽器上出錯,各種錯誤各種調(diào)試,直到想吐。沒關(guān)系錯誤就是進步,下面我要開始上課了,就寫到這吧,加油myself。

      第四篇:gui谷子解讀

      一、何謂縱橫術(shù)

      《史記六十七卷·仲尼弟子列傳》

      ——存魯、亂齊、破吳、疆晉而霸越,史稱“一石五鳥” ① 游說的前提──量權(quán) ② 游說的出發(fā)點──揣情 ③ 游說的順利發(fā)展──摩意 ④ 游說成功的關(guān)鍵──權(quán)謀

      ●縱橫術(shù)就是把“知己知彼,勝乃不殆”的策略具體運用到人類的思維心理層面上,內(nèi)設計謀,外陳言辭,動之以形勢,誘之以利害,所展開的思維心理戰(zhàn)術(shù)?!窨v橫術(shù)不是呈一時口舌之辯、轉(zhuǎn)丸其辭的詭辯術(shù),而是融道(原則)、法(方法)、術(shù)(技巧)為一體的經(jīng)典的人類行為理論。

      二、理解和運用縱橫術(shù)的原則 ●道、法、術(shù)相結(jié)合的原則

      ——原理、原則;法則、方法;技巧 ●言、情、智相結(jié)合的原則 ⊙“泣下沾襟”

      ——言貴動其情,情貴動其心 ⊙“誘師出屋”

      ——智貴善其謀。智澤于內(nèi),言溢于外 ●《戰(zhàn)國策》與《鬼谷子》對照研讀

      三、縱橫術(shù)選講 1.捭闔術(shù)

      捭闔術(shù)是以事物和人物的陰陽類別為法則而展開的言談語默之術(shù)。其目標是料對方之實情,最大限度地獲取對方的信誠。所謂“捭之者,料其情也;闔之者,結(jié)其誠也”。

      “捭”的字面意思是開、言,引申為使之開口說話,或者說服對方接納己方觀點。故曰:“捭者,或捭而出之,或捭而內(nèi)之?!?/p>

      “闔”的字面意思是關(guān)、默,引申為默認或者拒絕。故曰:“闔者,或闔而取之,或闔而去之。”

      捭為陽,在明處;闔為陰,在暗處。調(diào)動對方說話之后,對對方所言的情之真?zhèn)我抵杏兴∩?;讓對方確信什么,放棄或忽略什么,也在暗中操作??傉摰男再|(zhì)

      捭闔篇說:“口者,心之門戶也。心者,神之主也。志意、喜欲、思慮、智謀,此皆由門戶出入。故關(guān)之以捭闔,制之以出入?!?A:方法

      1.目標:“料其情,結(jié)其誠”

      ⊙料其情:開其金口,觀其心志 ⊙結(jié)其誠:取同去異,結(jié)其信誠

      ○孔子說:“人心險于山川,難于知天?!保ā肚f子·列御寇》)怎樣打開言談的局面? 怎樣消除分歧,結(jié)其信誠? 2.一般方法

      ①明類:縱向的類與橫向的類 ●縱向的類

      ⊙信任感與認同感等 ⊙制造角色與惡性循環(huán) ●橫向的類

      ⊙好奇心、同情心、恐懼感等 ⊙怎樣研究橫向的類 ? ② 需要理論

      ⊙陽類:長生、安樂、富貴、尊榮、顯名、愛好、財利、得意、喜欲,以這一類有利的事物來進行游說稱為“陽”、稱為“始”

      ⊙陰類:死亡、憂患、貧賤、苦辱、棄損、亡利、失意、有害、刑戮、誅罰,以這一類不利的事物來進行游說稱為“陰”、稱為“終”

      ——馬斯洛:生理、安全、愛與歸屬、尊重、認知、美感與自我實現(xiàn)。3.具體方法

      ①“言善以始其事”;“言惡以終為謀”

      ●動其行:強調(diào)有利的方面誘使對方行動 ●止其謀:強調(diào)不利的方面阻止對方行動 ②“與陽言者依崇高”;“與陰言者依卑小” ●“謀之于陽”:以崇高為基調(diào),以高求大 ●“謀之于陰”:以卑小為基調(diào),以下求小

      ③ “微排其所言而捭反之,以求其實,貴得其指” ——“排抑捭反”與“混說損益”(《內(nèi)揵篇》)第一步:開而示之同,隱而藏之異?!瓣杽佣?,陰止而藏” 第二步:借“取同”而“去異”?!瓣杽佣?,陰隱而入” 第三步:求所言利害之信?!耙躁柷箨?,苞以德也” ——反面(不可行性)論證 B.技巧

      ●求所言利害之信的說服技巧 ⊙語言:以第三者立場陳言

      ⊙心理:聰明的賣馬人(《燕策二》)⊙邏輯:兩面論證的可能性—論辯 ——晉元帝與明帝司馬紹

      ——“黃金準則”與鄧析的 “兩可之說”; “濠梁之辯”與“秦趙之約” 死局──僵局──和局 C:原則──道術(shù)與術(shù)道

      ●“捭闔者,以變動陰陽,四時開閉,以化萬物”;“捭闔之道,以陰陽試之”;“益損、去就、倍反,皆以陰陽御其事”。(《捭闔》)

      ●“欲捭之,貴周;欲闔之,貴密。周密之貴微,而與道相追?!保ā掇汴H》)2.反應術(shù) 捭闔術(shù)講的是如何以有聲的語言探測對方的實情、結(jié)取對方的信誠,而反應術(shù)則進一步透過有聲語言的表層,展開“以無形求有聲”的思維心理戰(zhàn)術(shù),其目標是“得其情詐”。

      “反”就是反觀:反觀歷史、反觀對方;“應”亦作“覆”,有“覆驗”和“應驗”兩層意思。所謂“反以知彼,覆以知己”,“反以觀往,覆以驗來”。A:方法

      1.目標:“聽真?zhèn)?,知同異,得其情詐也?!?——《呂氏春秋·淫辭》說:“非辭無以相期” 又說:“從辭則亂”?!兑住は缔o》說:“將叛者,其辭慚;中心疑者,其辭歧;吉人之辭寡;躁人之辭多;誣善之人,其辭游;失其守者,其辭屈?!?2.察言觀色:以其見者而知其隱者

      ——東郭牙善辨君子“三色”:鐘鼓之色、衰绖之色、兵革之色。(《管子·小問》)3.象比之法:以其隱者而知其見者

      ——“象其事,比其辭” ; “以無形求有聲” ——情、理、類隱而無形 ——“同聲相呼,實理同歸”

      根據(jù)事物的常理、常規(guī)和人物的常態(tài)、常情來推斷情之真?zhèn)?。對于違反常理、常規(guī)和常態(tài)、常情的現(xiàn)象,要善于冷靜觀察,其中大多有詐。

      ——明智的南文子(《宋、衛(wèi)策》)

      ——反常的鄭袖(《楚策四》)B:技巧

      1.釣情術(shù):“釣語合事,得人實也。其猶張置網(wǎng)而取獸也。” ⊙餌釣:物餌與人餌

      ——齊王后死,《齊策三》 ——申不害答韓王,《韓策一》 ——唐·趙蕤《長短經(jīng)·釣情篇》:物釣、言釣、事釣、志釣、視釣、賢釣、色釣7種。

      ⊙善釣:善釣者不用餌,用網(wǎng)。這個網(wǎng)就是以道為綱的反觀術(shù)。

      2.反觀術(shù):“反以觀往,覆以驗今。反以知古,覆以知今。反以知彼,覆以知己?!?⊙“變象比,必有反辭?!?/p>

      ⊙“善反聽者,乃變鬼神以得其情?!?——反聽、反觀、反說與“知己知彼” 反聽:莊王伐陳,《呂氏春秋·似順》 反觀:劉邦封雍齒,《經(jīng)世奇謀·紓禍》 反說:陳軫說昭陽,《齊策一》

      ——帶指針的跪毯 C:原則──道術(shù)與術(shù)道

      ●“古之大化者,乃與無形俱生。”“事有反而得覆者,圣人之意也?!保ā斗磻罚瘛凹翰幌榷?,牧人不正;事用不巧,是謂忘情失道。”(《反應篇》)——齊桓公的悲慘結(jié)局,《智囊·知微》

      3.內(nèi)揵術(shù)

      捭闔術(shù)講的是如何“料其情,結(jié)其誠”,反應術(shù)講的是如何“察言見情”、“得其情詐”。內(nèi)揵術(shù)講的則是如何建立和不斷鞏固游說者與游說對象之間的親密關(guān)系。

      “內(nèi)”,入也、納也。引申為以言辭入結(jié)于君;“揵”,關(guān)門之木,關(guān)合、緊閉。引申為以謀略內(nèi)結(jié)于君。

      A:方法

      1.目標:“出無間,入無朕,獨往獨來,莫之能止?!?⊙ “伙伴關(guān)系”與“情人關(guān)系” “君臣上下之事,有遠而親,近而疏?!者M前而不御,遙聞聲而相思。”(《內(nèi)揵》)

      2.為什么追求這一目標? ○感情親疏對理智判斷的影響 ——“信而后諫”(《論語·子張》)

      ——“周澤既渥,計而不疑,引爭而不罪?!保ā俄n非子·說難》)○兜售智謀,高風險性的職業(yè)。3.怎樣追求這一目標?

      ——四種結(jié)交方式:“結(jié)以道德、結(jié)以黨友、結(jié)以財貨、結(jié)以采色” ○道德:道術(shù)(智)與仁德(心)。內(nèi)結(jié)為帝王之師,外應以良臣之名。

      ○黨友:同黨(志、意)與朋友(情、趣)。內(nèi)結(jié)為君王之友,外應以同黨之名?!鹭斬洠航鹩裰椴龋ㄋ接鸩缮和恋睾兔琅ㄋ接〣:技巧

      1.進說之陰柔術(shù)

      ——“欲說者務隱度,計事者務循順。陰慮可否,明言得失,以御其志?!? ⊙用其意、御其志

      ⊙陰隱與柔順(不觸逆鱗)○“十誡與九說”(《韓非子·說難》)2.計事之因化術(shù)

      ——“方來應時,以合其謀。詳思來揵,往應時當也。夫內(nèi)有不合者,不可施行也。乃揣切時宜,從便所為,以求其變。以變求內(nèi)者,若管取揵?!?⊙往應時當:“時”與“位”

      ⊙以變求內(nèi):“志同、氣順、心合 ”。C:原則──道術(shù)與術(shù)道

      ●“不見其類而說之者,見逆;不得其情而說之者,見非。” ●“揣切時宜,從便所為,以求其變?!?●“環(huán)轉(zhuǎn)因化,莫知所為,退為大儀?!?——智伯與郄疵、智果(《趙策一》)4.揣術(shù)與摩術(shù)

      揣術(shù)與摩術(shù)進一步將揣情的空間范圍拉大,把揣情與量權(quán)和摩意結(jié)合起來考慮。“揣”有量權(quán)和揣情兩種含義。

      “摩”即“觸摩”之意,謂以事謀去順合所說服的對象,并誘使他作出回應或者付諸行動。所以說:“摩者,揣之術(shù)也?!?A.方法

      1.目標:“知強弱輕重之稱、隱匿變化之動靜”

      “古之善用天下者,必量天下之權(quán),而揣諸侯之情。量權(quán)不審,不知強弱輕重之稱;揣情不審,不知隱匿變化之動靜?!?“計國事者,則當審權(quán)量;說人主,則當審揣情。謀慮情欲,必出于此?!孰m有先王之道,圣智之謀,非揣情隱匿,無可索之。此謀之大本,而說之法也?!保ā洞罚?/p>

      2.量權(quán)、揣情、摩意:謀事的戰(zhàn)略戰(zhàn)術(shù) ——諸葛亮的“隆中對”,劉備“空手套白狼”,占據(jù)荊州和益州,《資治通鑒65卷》 ——郭嘉的“十勝論”,曹操以弱勝強,打敗袁紹,《資治通鑒62卷》 ——耳聽八方的日本商人 ——8年秘書與龍行天下 B:技巧 1.極情術(shù)

      ⊙“以其甚喜之時,往而極其欲也。”“以其甚懼之時,往而極其惡也?!?——楚成王改立太子,《智囊·狡黠》

      ⊙“感動而不知其變者,乃且錯其人勿與語,而更問其所親,知其所安。” ——韓非子講的《韓非子·八奸》

      2.摩意術(shù):“微摩之以其所欲,測而探之……是謂塞窖、匿端、隱貌、逃情,而人不知,故成其事而無患。”

      ——“古之善摩者,如操鉤而臨深淵,餌而投之,必得魚焉?!保ā赌ζ罚选捌秸撸o也”:以平正的方式使之靜,不輕舉妄動?!选罢?,直也”:以正當?shù)姆绞绞怪钡蓝??!选跋舱?,悅也”:以對方所喜欲的事情使他歡悅。⊙“怒者,動也”:以對方所厭惡的事情使他沖動。⊙“名者,發(fā)也”:通過顯揚對方的名聲來誘動對方?!选靶姓撸梢病保簠f(xié)助對方行動,使之獲得成功?!选傲?,潔也”:以貞潔的行為誘動對方

      ⊙“信者,期也”:以誠信的方式使對方所期待的事情兌現(xiàn)?!选袄?,求也”:用利益之事誘使對方去追求 ⊙“卑者,諂也”:以低下的言辭或行為打動對方 ——幸運的奧迪:行者,成也;信者,期也。

      ——《文匯讀書周報》,遭遇荷蘭“紅寶書”:卑者,諂也 C:原則──揣、摩之道

      ●“揣情飾言,成文章而后論之。” ●“摩之以其類”,“摩之以其欲”?!瘛暗?、數(shù)與時相偶者也?!?/p>

      ——鄭武公伐胡,《韓非子·說難》

      ——江乙善謀,安陵君(楚成王的寵臣安繵)知時,《楚策一》

      5.抵巇術(shù)

      抵為抵塞,巇為罅隙、裂縫。抵巇就是把有缺漏的地方堵塞住。抵巇術(shù)講的是如何彌縫事情的罅隙,使事情免于潰敗的技術(shù)。

      “物有自然,事有離合。”“自天地之合離終始,必有巇隙,不可不察也。察之以捭闔,能用此道,圣人也?!?/p>

      ——墻崩因隙,器壞因釁。因隙釁而擊實之,則墻器不敗。若不可救,則因而除之,另有所營置。人事也是如此。A:方法

      1.目標:能因能循,為天地守神。2.“因”:危險的兆頭剛萌生便覺察之

      “事之危也,圣人知之,獨保其用,因化說事,通達計謀,以識細微。經(jīng)起秋毫之末,揮之于太山之本?!?/p>

      ——縫隙乃禍之端始 3.“循”:因釁隙而救之或除之

      “圣人者,天地之使也。世無可抵,則深隱而待時;時有可抵,則為之謀?!?/p>

      ——縫隙乃謀生之地 4.何謂萌芽巇罅?

      “天下紛錯,上無明主,公侯無道德,則小人讒賊,賢人不用,圣人竄匿,貪利詐偽者作,君臣相惑,土崩瓦解而相伐射,父子離散,乖亂反目,是謂萌芽巇罅。圣人見萌芽巇罅,則抵之以法?!?5.抵巇五法

      ⊙抵而塞:隙漏如果由內(nèi)部引起,則抵而塞(塞?。训侄鴧s:隙漏如果由外部引起,則抵而卻(擋退)⊙抵而息:隙漏如果由下面引起,則抵而息(平息)⊙抵而匿:隙漏如果由上面引起,則抵而匿(藏匿)⊙抵而得:隙漏如果無法救治,則抵而得(取而代之)

      ——這五者可歸為兩類:抵而塞之與抵而得之。事情還有挽救的余地,則抵而塞之;若不可挽救,則抵而得之。B:技巧

      ⊙如何因應事物發(fā)展的變隙而加以防治 ⊙如何因應事物發(fā)展的變隙而使之潰敗 ——如何設置計謀的技巧,參見謀術(shù) C:原則──道術(shù)與術(shù)道

      ●“物有自然,事有合離。有近而不可見,遠而可知。近而不可見者,不察其辭也;遠而可知者,反往以驗來也?!?/p>

      ●“兆萌牙孽之謀,皆由抵巇,抵巇隙為道術(shù)用?!?/p>

      6.飛箝術(shù)

      “飛”就是飛揚褒獎;“箝”就是鉗制約束。

      飛箝術(shù)言取人之道,先作聲譽以飛揚之,彼必露情竭志而無隱,然后因其所好,牽制約束,使之不得脫離的役使人才之術(shù)。A:方法

      1.目標: 空往而實來,綴而不失 ——一文錢騙術(shù),《智囊·狡黠》;辦學者 2.征召人才:“度權(quán)量能,征遠來近?!?——燕昭王招賢納士

      3.役使人才:“量智能,權(quán)材力” ;“審其意,知其所好惡” ——龐統(tǒng)當總參謀長;晉文公提升箕鄭 B.役使人才之術(shù)

      ①先征之而后重累。使賢才:征來后累以重任,如諸葛亮,鞠躬盡瘁,死而后已 ②先重累而后毀之。使干才:如諸葛亮用魏延 ③量能立勢以鉤之

      講效率:對人迫之以勢,如駕重車下山的轅馬 ④伺候見間而箝之

      講手段:利用人的缺陷箝制約束,使之不得脫也。如曹操見“間”而箝徐庶;司馬熹使趙造“間”而箝中山王。錢鍾書的《圍城》。⑤稱財貨、珠玉、璧帛、采色以事之 養(yǎng)閑人:如孟嘗君的“雞鳴狗盜”之徒 C:原則──道術(shù)與術(shù)道 ●“察同異,別是非之語?!?——用人有道

      ●“見內(nèi)外之辭,知有無之數(shù)。” ——知人有數(shù)

      ●“決安危之計,定親疏之事?!?——役人者,手操的是雙刃劍

      7.權(quán)術(shù)與謀術(shù)

      “權(quán)”:古代秤砣叫權(quán),權(quán)衡輕重的意思。在這里指的是在游說中,對所使用的語言、談話的技巧和所說服的對象,要加以謹慎的權(quán)衡和選擇。

      “謀”:謀就是思慮、計謀。《說文》:“慮難曰謀?!睉]人難、慮事難、參立難,將這三難解決好了,計謀就會應運而生。

      權(quán)謀術(shù)講的是如何選擇言談的技巧和如何權(quán)衡游說的對象,針對人類行為的弱點和事物發(fā)展變化的釁隙,見隙而謀的謀略技術(shù)。A:“權(quán)”的方法和技巧

      1.目標:“繁言而不亂,翱翔而不迷,變易而不危,睹要得理。” 2.五種可選擇的言語方式 ●佞言者,諂而干忠 ●諛言者,博而干智 ●平言者,決而干勇 ●戚言者,權(quán)而干信 ●靜言者,反而干勝

      3.五種忌諱和可利用的言語方式 ●病者,感衰氣而不神 ●怨者,腸絕而無主 ●憂者,閉塞而不泄 ●怒者,妄動而不治 ●喜者,宣散而無要

      ——“心安靜則神策生,慮深遠則計謀成”

      4.“見人說法”九種 ①與智者言依于博 ②與博者言依于辯 ③與辯者言依于要 ④與貴者言依于勢 ⑤與富者言依于高 ⑥與貧者言依于利 ⑦與賤者言依于謙

      ⑧與勇者言依于敢 ⑨與過者言依于銳 B:“權(quán)”之道

      ●“言多類,事多變,終日言不失其類?!?●“智貴明,辭貴奇?!?/p>

      ——改姓輔氏的智果與出使齊國的郄疵《趙策一》 ——靖郭君田嬰與“海大魚”,《齊策一》 C:何為計謀

      “凡謀有道,必得其所因。”“故因其疑以變之,因其見以然之,因其說以要之,因其勢以成之,因其惡以權(quán)之,因其患以斥之。摩而恐之,高而動之,微而證之,符而應之,擁而塞之,亂而惑之,是謂計謀?!?——亂而惑之:張巡與安祿山玩草人借箭 D:如何設立計謀

      ①“度材、量能、揣情,事之司南也。” ——設立計謀的指南

      ②“變生事,事生謀,謀生計?!?——事物發(fā)展的變隙乃謀生之地 ③“參以立焉,以生奇”

      ——仁、智、勇三才:參立難?!叭嗜溯p貨,不可誘以利,可使出費;勇士輕難,不可懼以患,可使居危;智者達于數(shù),明于理,不可欺以不誠,可示以道理,可使立功?!?E:計謀之用

      ①“公不如私,私不如結(jié),結(jié)而無隙者也?!保ㄋ剑[密;結(jié),同心;謀生于有隙,用于無隙)

      ②“正不如奇(奇,因事機發(fā)),奇流而不止者也。” ③“可知者,可用也;不可知者,謀者所不用也。” F:“謀”之道

      ●“用于眾人之所不能知,用于眾人之所不能見?!?●“圣人之道,在隱與匿?!?8.決疑術(shù)

      決疑術(shù)是按著“度以往事,驗之來事,參之平素”的法則而進行的決疑斷惑之術(shù)。其宗旨在于說明有哪些事情值得我們費心力去做決斷,并教我們?nèi)绾稳ハ聸Q斷。自古以來,善決疑者致福,不善決疑者有殃。決疑是極難為而又影響深遠之事,所謂“決情定疑,萬事之機,以正治亂,決成敗,難為者”。A:方法與技巧

      ●“決情定疑,萬事之機,以正治亂,決成敗,難為者。故先王乃用蓍龜者,以自決也?!?/p>

      ●五種值得決斷的事情

      ⊙“王公大人之事也,危而美名者” ⊙“不用費力而易成者”

      ⊙“用力犯勤苦,然不得已而為之者” ⊙“去患者” ⊙“從福者”?!裎宸N決斷方式 ⊙決之以“陽德” ⊙決之以“陰賊” ⊙決之以“信誠” ⊙決之以“蔽匿” ⊙決之以“平素” B:原則

      ●“度以往事,驗之來事,參之平素” 結(jié)束語:

      一、縱橫術(shù)與儒家哲學

      ——道德問題:德與術(shù);“德養(yǎng)五氣,心能得一,乃有其術(shù)?!?/p>

      二、縱橫術(shù)與道家哲學

      “無為而求,安靜五臟,和通六腑,精神魂魄固守不動,乃能內(nèi)視、反聽,定志慮之太虛,待神往來。以觀天地開辟,知萬物所造化,見陰陽之終始,原人事之政理。”

      ——老子的“無為”與莊子的“無我”

      三、縱橫術(shù)的現(xiàn)代意義

      ●日常生活:人生的游戲色彩

      ●職業(yè)技術(shù):治國、外交、企業(yè)管理… ——讀孔子之言,行儀秦之事 ——“內(nèi)圣外王”與“勝者為王”

      第五篇:關(guān)于GUI的一點心得體會

      [Fig文件方式,即使用菜單File->New->GUI來設計界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運行,但是從7.0版開始改進了一點,我試過 6.5版的含GUI的m文件可以在 7.0版上運行,但如果在7.0版上面修改過.fig文件,那么就不能回到6.5版上運行了(顯示一堆錯誤,我沒看懂,不知道能否通過修改使之重新可在 6.5版上運行,呵呵),而在7.0版上制作的含GUI的m文件就完全不能放到6.5版上運行了(也是同樣的錯誤)。這可能是因為matlab各版本在 GUI上改動較大,所以都不支持向下兼容。也許兼容性差是使用GUI編寫程序的最大麻煩。

      其次,說說使用GUI的好處。不知道是否承襲了VC or BCB的習慣,我比較喜歡編寫完程序后按快捷鍵運行(此時會自動保存m文件),但是,對于程序有輸入?yún)?shù)的 時候,如果不采用GUI方式,這顯然是行不通的――當然了,可以在command window按“向上”鍵然后重新改寫你想要的參數(shù)。對于一些較大型的程序,正因為我比較偏向于按F5運行程序,所以我會選擇使用GUI方式。不過GUI 方式的好處就遠不止于此了,它可以把幾個功能相關(guān)的模塊集中起來,使得不需要重新關(guān)閉、運行就能得到不同的結(jié)果,便于比較;可以減少figure滿天飛的現(xiàn)象,這在matlab中尤為明顯;便于交互式地觀看不同的數(shù)據(jù),例如在我處理的fMRI問題中,希望觀看每個三維點對應的時間序列,這時候需要提供交互式的選擇??不過,盡管GUI有很多好處,但是其缺點也是有的,除了上面提到的兼容性(移植性)以外,要管理、維護一個GUI界面也是比較麻煩的,相信有其他語言的界面設計經(jīng)驗的朋友也知道這點。

      再 者,對GUI問題,說說我的一點經(jīng)驗吧。其實,matlab已經(jīng)在這方面改進了不少,從控件的增加和教程的學習都可以看出來。例如6.5版本是沒有 Panel和Button Group這兩個控件的,在2006a版本中就新增了這兩個控件(這個好像7.0版就有了,不確定);教程方面,也使用了最為直觀的視頻教學方式,建議新手看看Creating a GUI with GUIDE 和Creating Graphical User Interfaces兩節(jié)。所以,操作上的細節(jié)我就不多講了,自己摸索一下就ok了。至于編程時最為關(guān)鍵的參數(shù)傳遞問題,可以參考本論壇或者仿真論壇上面的“函數(shù)結(jié)構(gòu)與參數(shù)傳遞”一文,作者整理得較完整,不過有點難懂。這里我簡單說一下吧:

      [轉(zhuǎn)cwit]關(guān)于參數(shù)傳遞的方法:

      1.在內(nèi)存中提?。孩?采用function的varargin和varargout傳送,② 存在handle的ApplicationData中,③保存在handles里面。當然還有其他方法; 2.存在硬盤上,采用save和load;

      3.用全局變量,最次的辦法,有時卻是最好的辦法;

      我想,對于這里處理的GUI問題,一般不會用到save和load命令(要 從mat文件讀取數(shù)據(jù)初始化或者把數(shù)據(jù)存儲到mat文件中例外),“function的varargin和varargout傳送”的方法也不較少使用(因為對于控件的回調(diào)函數(shù),matlab規(guī)定了輸入?yún)?shù)為“hObject, eventdata, handles, varargin”,且一般沒有返回值,所以不同于自定義的函數(shù)),所以剩下的方法就只有三種了: 1.存在handle的ApplicationData中――利用setappdata函數(shù)將數(shù)據(jù)保存在對象的“ApplicationData”屬性中,利 用getappdata函數(shù)從對象的“ApplicationData”屬性中提取數(shù)據(jù),如果沒有定義,就為空。例如,假設figure的tag屬性是 figure1,則setappdata(handles.figure1,’A’,A)就可以把變量A存放到figure1的 “ApplicationData”屬性中,名字為A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”屬性中名字為A的變量賦給 B。setappdata和getappdata操作的對象,最好為figure_handle,便于管理和擴展。Matlab的高級編程和對象控制,將 大量使用這兩個函數(shù)[轉(zhuǎn)自cwit];

      2.保存在handles里面――首先,這是訪問控件的常用方法,注意到Tag是唯一標識控件的屬性,也就說,如果一個控件的Tag屬性是a,那么,在fig 對應的m文件中,只要含有“handles”作為其輸入?yún)?shù)的函數(shù)中,就可以使用handles.a對該控件進行訪問。既然句柄(相當于其他語言中的指 針)已經(jīng)拿到手了,就任由“宰割”了(例如設置屬性、存取數(shù)據(jù)等就比較容易了);其次,可以利用這種方法把自定義的變量保存在handles里面進行存取,這在matlab幫助的Creating a GUI with GUIDE一節(jié)中有具體介紹,不多說;

      3.用全局變量的方法――這是我進行參數(shù)傳遞的常用方法,使用方法是:在兩個函數(shù)體(當然可以是多個了,這里是主函數(shù)和子函數(shù)的意思)中使用前加入語句 “global A”,其中A是多個函數(shù)需要傳遞的變量名,多個變量用空格格開,句末不需要加分號。這種方法由于存放在硬盤上,存取速度會減慢,但是如果變量個數(shù)不多、或 者對該變量引用的函數(shù)不多,可以考慮用此辦法(我尚未能領(lǐng)會cwit兄所說“最次的辦法,有時卻是最好的辦法”之含義)。

      至于其他有關(guān)GUI命令、控件屬性和圖形屬性可以參考matlab的幫助,或者參考“GUI命令大全”、《精通GUI圖形界面編程》(這兩個本論壇有)、“Matlab圖形圖像屬性”、“GUI.rtf”(這兩個參見附件,后者下載后手動修改一下后綴名)。實際上,用得比較多的控件屬性不外乎以下幾種(高手例外):

      Visible屬性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’);或者set(handles.***, ‘Visible’, ‘off’);

      String屬性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);Enable屬性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);

      Value屬性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1);或set(handles.***,’Value’,0);

      留意一下響應函數(shù)的注釋部分,有時候會得到提示的。例如,我的 matlab 2007a 中,在設計界面上增加了 listbox 控件后,m 文件的對應回調(diào)函數(shù)處顯示如下:

      %---Executes on selection change in listbox1.function listbox1_Callback(hObject, eventdata, handles)% hObject handle to listbox1(see GCBO)% eventdata reserved100*k/N)<= 1e-003 waitbar(k/N);i = i + step;end 其中i是控制進度條在何處刷新,k是程序的循環(huán)變量,N是程序循環(huán)的總次數(shù)。

      使用 uicontrol 方式實現(xiàn)進度條的示例: 復制內(nèi)容到剪貼板 代碼: figure;e1 = uicontrol(gcf,'style','edit','BackgroundColor','w',...'unit','normalized','position',[0.35,0.6,0.02,0.25]);e2 = uicontrol(gcf,'style','edit','BackgroundColor','r',...'unit','normalized','position',[0.3525,0.6,0.015,0.01]);drawnow;n = 1000;ii = 1;for i = 1:0.01:n if(ii-100*i/n)<= 1e-003 set(e2,'position',[0.3525,0.6,0.015,0.01+0.24*i/n]);drawnow;ii = ii + 1;end end 【附錄】轉(zhuǎn)自cwit兄:

      m文件與fig文件創(chuàng)建figure的十大差異——用代碼寫figure,并不是麻煩。如果你習慣了,或者熟悉了,會發(fā)現(xiàn)用代碼實現(xiàn)guide編程,比GUI方便很多,功能也很強大。用m文件實現(xiàn)guide編程,相比GUI編程有幾大差異: 1.代碼可復用,節(jié)省成本;

      2.GUI不能靈活創(chuàng)建uimenu,并且不能編輯其所有屬性; 3.GUI還沒有實現(xiàn)創(chuàng)建uitoolbox; 4.GUI不能創(chuàng)建所有axes的子對象;

      5.寫界面也有一些算法,在GUI中無法實現(xiàn)。而用m文件就可以實現(xiàn)在不同窗口尺寸下給對象以合適的位置; 6.m文件可以生成非常復雜的界面;

      7.采用GUI編程,代碼編譯后依賴于*.fig文件; 8.m文件可以實現(xiàn)組件;

      9.m文件創(chuàng)建的對象,可以方便的在handle中存取數(shù)據(jù); 10.m文件可以將創(chuàng)建對象代碼與動作執(zhí)行代碼很好的結(jié)合起來。

      【注】關(guān)于兩種方式的運行:

      對于fig文件方式:fig文件記錄的是控件的布局和屬性等資源信息,m文件記錄的是控件的響應消息(這是個人理解,更準確的介紹請參閱有關(guān)GUI的書籍,我懶得去查了,呵呵),兩者缺一不可。所以,不能通過打開fig文件(如菜單中的Open命令)來運行該GUI,這種方式的運行方法有兩種:打開該GUI對應的m文件,然后像普通m文件那樣運行;打開該GUI的設計界面(菜單操作:File?New?GUI?Open Existing GUI,打開 fig 文件),然后點擊設計界面工具欄上的那個像箭頭一樣的按鈕

      對于m文件方式:像普通m文件那樣運行就可以了

      先建立兩個GUI,一個名為guidata1.fig guidata2.fig,它們的tag屬性也分別為guidata1,guidata2。然后在guidata1.m中的opening function中加入下列語句:

      setappdata(handles.guidata1,'Sai',1);

      在guidata2.m中的opening function 中寫入下列語句:

      setappdata(handles.guidata2,'Sai',2);

      下面我們分別在guidata1.fig guidata2.fig中放一個按鈕和靜態(tài)文本。接下來,在guidata1.m的按鈕中加入下列程序:

      guidata21=findobj('Tag','guidata2');if isempty(guidata21),errordlg('Not Open guidata2.fig','Error');

      guidata22=guidata2();

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));else

      guidata22=guihandles(guidata2);

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      在guidata2.m中的按鈕中加入下列程序:

      guidata12=findobj('Tag','guidata1');%查看guidata1.fig是否打開 if isempty(guidata12), %如果沒有打開

      guidata11=guidata1();%打開guidata1.fig,并且把句柄給guidata11

      guidata11=guihandles(guidata11);%把guidata11轉(zhuǎn)為可用的gui句柄

      Sai=getappdata(guidata11.guidata1,'Sai');%讀取句柄guidata11中的名為Sai的變量值,可以和其%%%%%%%%%opening function 中的對比setappdata(handles.guidata1,'Sai',1)

      set(handles.text1,'String',num2str(Sai));else

      guidata11=guihandles(guidata1);

      Sai=getappdata(guidata11.guidata1,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      然后隨便打開某個fig文件,比如打開guidata1.fig,然后點其中的按鈕,可以看到下面的靜態(tài)文本上顯示2,那么這個自然是從guidata2.fig中讀出來的。而且會自動打開guidata2.fig.這里其實是用findobj首先看是否已經(jīng)打開guidata1,如果沒有打開,則打開,并將句柄轉(zhuǎn)化為gui句柄。我在opening function 中是將名為Sai,值為1的變量存在了figure中,其實也可以存在其他控件中,比如在按鈕上加一個應用程序數(shù)據(jù)其名為Sai,值為1,那么可以這么寫 setappdata(handles.pushbutton1,'Sai',1),然后隨時我們都可以通過getappdata setappdata來獲取或設置其值。

      而這里我推薦用這兩個命令,如果你用handles來共享數(shù)據(jù)的話,一是他可能會被程序的其他控件改變,二是它容易和引用控件時想混淆。

      下載Java 教案-第12章 GUI初步五篇word格式文檔
      下載Java 教案-第12章 GUI初步五篇.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        關(guān)于GUI的一點心得體會

        [Fig文件方式,即使用菜單File->New->GUI來設計界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運行,但是從7.0版開始改進了一點,我試......

        java教案

        教案1設計摘要專業(yè)物聯(lián)網(wǎng)課程Java程序設計課時1課型理論+實踐班級18級物聯(lián)網(wǎng)教材零基礎(chǔ)學Java-明日科技出版章節(jié)面向?qū)ο蠛诵募夹g(shù)一、學習內(nèi)容與目標學習內(nèi)容1.封裝的概念和......

        關(guān)于GUI的一點心得體會(合集5篇)

        [Fig文件方式,即使用菜單File->New->GUI來設計界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運行,但是從7.0版開始改進了一點,我試......

        實驗三GUI編程

        實驗三GUI編程 一、實驗目的: 1、了解Java系統(tǒng)圖形用戶界面的基本工作原理和界面設計的步驟 2、了解圖形用戶界面的事件響應機制. 3、掌握圖形用戶界面各種常用的基本組件的......

        java程序設計教案

        《Java程序設計》 授 課 人:授課班級:電子商務專業(yè) 授課教案 第一章Java語言簡介 教學目的要求 ? 了解Java的基本特點和用途 ? 掌握如何下載Java SDK軟件包 ? 了解設置Java程序......

        Java程序設計教案

        Java程序設計 第一講 緒論 一、安裝netbean系統(tǒng) 二、hello world 典型程序結(jié)構(gòu)中各部分的說明: /* * To change this template, choose Tools | Templates * and open the......

        java程序設計教案(★)

        課程教案 (理論教學) 課程名稱: Java程序設計 課程類型:( 2 )1、必修;2、選修;3、其它 授課對象: 專業(yè)(本科) 級 班 授課時間: 至 學年第 學期 計劃學時: 學時(其中:理論 ,實驗: ) 任課教師......

        概率初步教案

        概率初步 ? 教學目標: 1、理解隨機事件的定義,概率的定義; 2、會用列舉法求隨機事件的概率;利用頻率估計概率(試驗概率); 3、體會隨機觀念和概率思想,逐步學習利用列舉法分析問題和解......