作者 主題: 兩程式 java 事件都沒反應....... 明天要小考 急 謝謝@_@  (閱讀 4929 次)

0 會員 與 1 訪客 正在閱讀本文。

kalowt

  • 可愛的小學生
  • *
  • 文章數: 16
    • 檢視個人資料
設計依各Java AWT的圖形使用介面,選擇後會根據輸入的Row和Column數字決定GridLayout顯示數量,還有3樣text選擇顯示在textfiel顯示"*" or "o" or "x"四種圖形功能

================================================================
代碼: [選擇]

import java.awt.*;
import java.awt.event.*;
public class TEST2a extends Frame implements ItemListener,TextListener
{
   static TEST2a frm=new TEST2a();
   static Label lab1=new Label("Row");
   static TextArea txa1=new TextArea("",1,7,TextArea.SCROLLBARS_NONE);
   static Label lab2=new Label("Column");
   static TextArea txa2=new TextArea("",1,7,TextArea.SCROLLBARS_NONE);
   static Checkbox ckb1=new Checkbox("*");
   static Checkbox ckb2=new Checkbox("o");
   static Checkbox ckb3=new Checkbox("x");
   static Panel pnl=new Panel();
   
   public static void main(String args[])
   {
      frm.setLayout(null);
      frm.setTitle("Problem3");
      frm.setSize(400,500);
      frm.setResizable(false);
     
      CheckboxGroup grp=new CheckboxGroup();
      ckb1.setCheckboxGroup(grp);
      ckb2.setCheckboxGroup(grp);
      ckb3.setCheckboxGroup(grp);
     
      txa1.addTextListener(frm);
      txa2.addTextListener(frm);;
     
      ckb1.addItemListener(frm);
      ckb2.addItemListener(frm);
      ckb3.addItemListener(frm);
     
      lab1.setLocation(20,40);
      lab1.setSize(40,10);
      txa1.setBounds(70,40,80,20);            
      lab2.setLocation(20,70);
      lab2.setSize(40,10);
      txa2.setBounds(70,70,80,20);
      ckb1.setBounds(20,120,30,10);
      ckb2.setBounds(20,140,30,10);
      ckb3.setBounds(20,160,30,10);
     
      pnl.setBounds(20,200,300,300);

      frm.add(lab1);
      frm.add(txa1);
      frm.add(lab2);
      frm.add(txa2);
      frm.add(ckb1);
      frm.add(ckb2);
      frm.add(ckb3);
      frm.add(pnl);
     
      frm.setVisible(true);
   }
   public void textValueChanged(TextEvent e)
   {
int x,y;
    pnl.removeAll();
    pnl.setLayout(new GridLayout(x=txa1.getText(),y=txa2.getText()));
frm.validate();
   }
   public void itemStateChanged(ItemEvent e)
   {
      if(ckb1.getState()==true)
      {
        pnl.add(new TextField("*"));
      }
       else if(ckb2.getState()==true)
      {
        pnl.add(new TextField("o"));
      }
       else if(ckb3.getState()==true)
       {
        pnl.add(new TextField("x"));
       }
    }
}