1. 程式人生 > >Java集合框架上機練習題(泛型、JFrame)

Java集合框架上機練習題(泛型、JFrame)

編寫一個應用程式,使用者分別從兩個文字框輸入學術的姓名和分數,程式按成績排序將這些學生的姓名和分數顯示在一個文字區中。

Student.java  
  
public class Student implements Comparable {  
    String name;  
    int score;  
    Student(String name,int score){  
        this.name=name;  
        this.score=score;  
    }  
    public String getName() {  
        return name;  
    }  
    public int getScore() {  
        return score;  
    }  
    //按學生成績進行排序  
    public int compareTo(Object b) {  
        Student st=(Student)b;  
        int m=this.score-st.score;  
        //保證成績相等時也能在文字區中顯示  
        if(m==0)   
            return 1;  
        else return m;  
    }  
  
}  
MyFrame.java  
import java.awt.BorderLayout;  
import java.awt.event.*;  
import java.util.*;  
  
import javax.swing.*;  
  
public class MyFrame extends JFrame implements ActionListener{  
    //TreeSet泛型集合物件  
    TreeSet<Student> t;  
    //姓名文字框  
    JTextField text1;  
    //成績 文字框  
    JTextField text2;  
    // 確認按鈕  
    JButton button;  
    //文字區  
    JTextArea area;  
  
    MyFrame(){  
        init();  
        setVisible(true);  
        setDefaultCloseOperation(this.EXIT_ON_CLOSE);  
    }  
    void init() {  
        //TreeSet集合物件  
        t=new TreeSet<Student>();  
        //建立 姓名 標籤  
        JLabel label1=new JLabel("姓名");  
        //姓名文字框  
        text1=new JTextField(10);  
        //建立 成績標籤  
        JLabel label2=new JLabel("成績");  
        //成績 文字框  
        text2=new JTextField(10);  
        // 確認按鈕  
        button=new JButton("確定");  
        //文字區  
        area=new JTextArea(20,30);  
        //建立面板,把上面的元件新增到面板  
        JPanel panel=new JPanel();  
        panel.add(label1);  
        panel.add(text1);  
        panel.add(label2);  
        panel.add(text2);  
        panel.add(button);  
        //新增到視窗  
        add(panel,BorderLayout.NORTH);  
        add(area,BorderLayout.CENTER);  
        //給第一個文字框text1 新增監聽器  
        text1.addActionListener(this);  
        //給第二個文字框text1 新增監聽器  
        text2.addActionListener(this);  
        //給button按鈕新增監視器  
        button.addActionListener(this);  
          
    }  
    //重寫actionPerformed方法  
    public void actionPerformed(ActionEvent e) {  
        String name=text1.getText();  
        int score=0;  
        try{  
            //通過Integer.parseInt,把字串型別轉換為整型的數字  
             score=Integer.parseInt(text2.getText());  
             //如果輸入的名字合法,新增到集合t中,再呼叫show方法,將集合t的內容顯示在文字區中  
             if(name.length()>0) {  
                 Student s=new Student(name,score);  
                 t.add(s);  
                 show(t);  
             }  
        }catch(NumberFormatException exp) { //數字格式異常  
             text2.setText("請輸入正確的字元");  
         }  
          
    }  
    public void show(TreeSet<Student> tr) {  
        //每次呼叫show方法,先把文字區中的內容清空  
        area.setText(null);  
        //獲取迭代器it  
        Iterator<Student> it=tr.iterator();  
        while(it.hasNext()) {  
            Student s=(Student)it.next();  
            //將學生的資訊顯示在文字區中  
            area.append("姓名:"+s.getName()+"   成績:"+s.getScore()+"\n");  
        }  
    }  
  
  
}  
Text.java  
  
  
public class Text {  
  
    public static void main(String args[]){  
        //建立MyFrame物件  
        MyFrame win=new MyFrame();  
        win.setBounds(100, 100, 400, 400);  
    }  
  
}  





相關推薦

Java集合框架上機練習題JFrame

編寫一個應用程式,使用者分別從兩個文字框輸入學術的姓名和分數,程式按成績排序將這些學生的姓名和分數顯示在一個文字區中。 Student.java public class Student implements Comparable { String n

Java集合框架上機練習題1

編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comarable介面,在介面的compareTo()方法中規定兩個Book類例項的大小關係為二者的price屬性的大小關係。在主

Java集合框架上機練習題:編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable接口,在接口的compareTo方法.....

ext .cn 數據庫 識別 方法 屬性 set package compareto 編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable接口,在接口的compareTo()方法中規定兩個Book類實例的大小關系為二者的price屬性的

Java集合框架上機練習題編寫一個Book類

編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comarable介面,在介面的compareTo()方法中規定兩個Book類例項的大小關係為二者的price屬性的大小關係。在主函式中,選擇合適的集合型別存放Book類的若干個物件,然後建立一個新的Bo

Java集合框架上機練習題2

package sci; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.awt.FlowLayout; import java

Java集合框架上機練習題-1

編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable介面,在介面的compareTo()方法中規定兩個Book類例項的大小關係為二者的price屬性的大小關係。在主函式中,選擇合適的集合型別存放Book類的若干個物件,然後建

Java集合框架上機練習題

1編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable介面,在介面的compareTo()方法中規定兩個Book類例項的大小關係為二者的price屬性的大小關係。在主函式中,選擇合適的集合型別存放Book類的若干個物件,然後建立一個新的

Java 知識點整理-10.Java集合框架 去除ArrayList中重複字串自定義物件 棧和佇列 JDK5新特性 asList() toArray(T[] a) ArrayList迴圈巢狀

詳細標題:去除ArrayList中重複字串、自定義物件元素方式 棧和佇列 泛型 JDK5新特性(增強for迴圈 三種迭代(普通for、迭代器、增強for)中的元素能否刪除 靜態匯入 可變引數)Arrays工具類的asList() Collection中toArray(T[] a) 集合巢狀之Arra

Java集合框架源碼——Vector

不同 設置 jpg etc 克隆 output sss 清空 開始 第1部分 Vector介紹 Vector簡介 Vector 是矢量隊列,它是JDK1.0版本添加的類。繼承於AbstractList,實現了List, RandomAccess, Cloneable這些接口

集合的嵌套和遞歸算法

入學 信息 add getc over import override 很多 tostring 1、  集合的嵌套: 集合的用法其實和數組的用法有很多共同之處,在使用數組的時候,二維數組就是數組的嵌套; 那麽在集合之中是否也可以這樣呢? 當然也是可以的,例如對於最復雜的的m

Java集合框架閱讀筆記ConcurrentHashMap

類繼承 only d+ nan next related ati null lur 預備知識 AQS(AbstractQueuedSynchronizer):提供了一個框架用來構造同步一些工具類比如ReentrantLock、 CopyOnWriteArrayList、

java內功系列六異常註解

泛型: 1.泛型的出現主要解決了容器中元素放進去後直接變成了object型別。在編譯的時候如果傳入錯誤的元素將會出錯。 2.每次傳給泛型類、介面的型別引數不一樣相當於建立了一個新的類。list<string>和list以及list<int>是不一樣的型別。(邏輯上存在物理

Java進階學習第十四天反射註解Log4J日誌元件

一、泛型 1、概述 泛型是JDK1.5以後才有的,可以在編譯時期進行型別檢查,且可以避免頻繁型別轉化! // 執行時期異常 @Test public void testGeneric() throws Exception { // 集合的宣告 List list

java第七章練習題

第七章練習題(多型)     1.下列自‘關多型的敘述正確的是哪項?(選兩項)     A.父類的引用指向子類的例項是一種多型     B. 子類的引用指向子類的例項是一種多型     c.介面的引用指向實現該介面類的例項是一種多型     D.抽象類的引用指向

java集合框架詳解

2,總體體系結構                                                                                                                                                  

Java集合框架:SetHashSet,LinkedHashSet,TreeSet

Set概述  Set幾乎都是內部用一個Map來實現, 因為Map裡的KeySet就是一個Set,而value是假值,全部使用同一個Object。Set的特徵也繼承了那些內部Map實現的特徵。 HashSet 1. 定義 package java.util; p

[Java]集合框架知識點總結逐步更新

1.迭代器 迭代器是一個介面,是一種取出集合中元素的方式。每個集合的內部以內部類的方式實現了此介面,用於取出集合的元素。這些內部類都符合迭代器介面。集合通過一個iterator方法提供這個取出元素的方式。不同的集合因為底層資料結構不同,而實現取出元素的方式不同。但都符合此介

這是你必須知道的Java集合框架面試題附答案

無論是需要招聘的企業人員還是正在求職或者打算跳槽的程式設計師,今天這篇都值得一看。這裡整合了常見的Java集合框架面試題目,以及對應的nice的答案。面試這關至關重要,合適的問題和巧妙的回答,是企業和應

冒泡排序+委托

lar private sin () using 排序 pan sch i+1 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th

Chapter10算法--C++Prime筆記

div 運算 賦值 lambda 取數 編譯 混合 height 不支持 關鍵:算法通過在叠代器上進行操作來實現類型無關。算法不改變所操作序列的大小。1.算法大多都定義在algorithm頭文件中,標準庫還在頭文件numeric中定義了一組數值泛型算法。2.泛型算法永遠也不