<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的JAVA窩! - BlogJava

    期末實(shí)踐中......

    今天成績(jī)都出來(lái)了,結(jié)果還是比較理想的,以后會(huì)相對(duì)輕松些。

    更新日志都是半個(gè)月前的事了,當(dāng)時(shí)還說(shuō)以后每天都更新,真是慚愧

    這幾天都是忙考試,弄得心力憔悴,今天晚上終于閑下來(lái),繼續(xù)寫(xiě)實(shí)踐的程序。

    剛剛解決了前幾個(gè)小時(shí)的困惑,現(xiàn)在對(duì)JAVA的內(nèi)部類(lèi)機(jī)制又有了更新的認(rèn)識(shí)(興奮中......),廢話(huà)少說(shuō),來(lái)看代碼:

    package tanzhang;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Combo;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.TabFolder;
    import org.eclipse.swt.widgets.Table;
    import org.eclipse.swt.widgets.TableColumn;
    import org.eclipse.swt.widgets.TableItem;
    import org.eclipse.swt.widgets.Text;
    import com.swtdesigner.SWTResourceManager;
    import org.eclipse.swt.widgets.TabItem;
    public class tanzhang {

    ?/**
    ? * Launch the application
    ? * @param args
    ? */
    ?private static Table table;
    ?private static TableItem newItemTableItem;

    ?
    ?public static void main(String[] args) {
    ??final Display display = Display.getDefault();
    ??final Shell shell = new Shell();
    ??shell.setImage(SWTResourceManager.getImage(tanzhang.class, "/org/eclipse/ui/internal/forms/widgets/progress.gif"));
    ??shell.setSize(774, 514);
    ??shell.setText("宣城供電局消弧線(xiàn)圈臺(tái)帳");
    ............
    ............
    ............
    ??final Combo combo_1 = new Combo(composite, SWT.READ_ONLY);
    ??combo_1.addSelectionListener(new SelectionAdapter() {
    ???public void widgetSelected(SelectionEvent arg0) {
    ????String str=combo_1.getText();
    ????try{?
    ?????String dbUrl = "jdbc:odbc:test";
    ?????Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    ?????Connection conn = DriverManager.getConnection(dbUrl, "", "");
    ?????Statement stmt=conn.createStatement();
    ?????String sql="SELECT * from test where 單元名稱(chēng)="+str;
    ?????ResultSet rs=stmt.executeQuery(sql);
    ?????
    ?????if(rs.next()){
    ?????for(int i=0;i<=4;i++){?????????
    ???????newItemTableItem.setText(i,rs.getString(i+1));??
    ???????}
    ?????
    ?????rs.close();
    ?????stmt.close();
    ?????conn.close();
    ?????}
    ????}catch(Exception e){}
    ????
    ???}
    ??});
    ............
    ............
    ............

    ??table = new Table(composite_1, SWT.VIRTUAL | SWT.FULL_SELECTION | SWT.BORDER | SWT.HIDE_SELECTION);

    ??table.setLinesVisible(true);
    ??table.setHeaderVisible(true);
    ??table.setBounds(0, 0, 678, 80);
    ............
    ............
    ............

    ???剛開(kāi)始是用final修飾table和newItemTableItem,但是“newItemTableItem.setText(i,rs.getString(i+1));”這行(代碼中蘭色那句)會(huì)報(bào)錯(cuò),編譯器提示“無(wú)法解析newItemTableItem”。我的第一反應(yīng)是監(jiān)聽(tīng)器的位置放得不對(duì)。翻了一下書(shū),說(shuō)SWT/JFace事件代碼中要訪(fǎng)問(wèn)類(lèi)中變量有三種方法:(1)加final;(2)將變量變?yōu)轭?lèi)的實(shí)例變量;(3)將事件代碼寫(xiě)成命名內(nèi)部類(lèi),然后通過(guò)構(gòu)造函數(shù)的參數(shù)來(lái)傳入。
    ???想了想好象只有第三種方法值得試試,但是后來(lái)想起來(lái)newItemTableItem是個(gè)對(duì)象,傳入以后卻不知道怎么轉(zhuǎn)換類(lèi)型,呆了...
    ???最后做了個(gè)新的程序試了試,在新程序里是成功的,就是要把newItemTableItem在main函數(shù)外申明其為private static,但是在舊的程序中,編譯器是通過(guò)了,但是進(jìn)行連接數(shù)據(jù)庫(kù)查詢(xún)的時(shí)候,出現(xiàn)“Fatal Exception...”的錯(cuò)誤,當(dāng)時(shí)一下就蒙掉了??!完全一樣的,怎么會(huì)不成功。
    ???百般無(wú)奈以后,----當(dāng)然之前肯定是深思熟慮----終于腦海中閃出了傳說(shuō)中的“靈感”!于是馬上把table也定義為private static......OK!???勝利總是來(lái)得那么突然,那瞬間的感覺(jué)就象90分鐘打進(jìn)的金球...

    ???當(dāng)然到現(xiàn)在,我還沒(méi)找到確切的原因。只能用自己的話(huà)總結(jié)一下:(1)匿名內(nèi)部類(lèi)中的方法是不能訪(fǎng)問(wèn)其他方法中定義的變量的(包括實(shí)例對(duì)象),要訪(fǎng)問(wèn)必須在類(lèi)中將其定義為static類(lèi)型。(2)TableItem是Table的子控件,要定義TableItem為static也要同時(shí)把Table定義為static類(lèi)型。

    ???給自己一個(gè)任務(wù):研究JAVA的內(nèi)部類(lèi)機(jī)制;研究SWT中父子控件關(guān)系的機(jī)制!

    ???看看《Thinking in JAVA》或許會(huì)是個(gè)不錯(cuò)的選擇,當(dāng)然還有《The Definitive Guide to SWT and JFace》。

    ?

    posted on 2007-01-15 02:41 J2S 閱讀(311) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(2)

    隨筆檔案

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产精品免费观看| 国产成人免费ā片在线观看老同学 | 久久久国产亚洲精品| 色老头永久免费网站| 亚洲成a人片在线网站| 91老湿机福利免费体验| 99人中文字幕亚洲区| 亚洲黄色免费网址| 91亚洲国产成人久久精品网址| 啦啦啦完整版免费视频在线观看| 亚洲小说区图片区| 成人免费看片又大又黄| 直接进入免费看黄的网站| 亚洲男人的天堂在线va拉文| 国产成人无码免费网站| 亚洲AV无码一区东京热久久| 未满十八18禁止免费无码网站| 久久亚洲AV无码精品色午夜麻豆 | 亚洲中文字幕视频国产| 国产99久久久久久免费看| 亚洲AV一宅男色影视| 免费观看国产网址你懂的| 亚洲综合色婷婷在线观看| 四虎成人免费大片在线| 美国毛片亚洲社区在线观看 | a级毛片免费全部播放| 亚洲精品免费在线视频| 四虎在线免费播放| 国产免费播放一区二区| 久久久久亚洲AV无码观看| 日本媚薬痉挛在线观看免费| 国产无限免费观看黄网站| 久久久久亚洲精品天堂| 日本特黄特黄刺激大片免费| 免费无码作爱视频| 亚洲最大的成人网| 亚洲午夜国产精品无码老牛影视 | 国产一级一片免费播放i| 久久er国产精品免费观看2| 亚洲日韩国产精品乱-久| 亚洲视频在线一区二区|