2016-09-08 9 views
0

JScrollBarの内部にあるJTableのサイズを変更する方法を教えてもらえますか?JScrollBarの内部にあるJTableのサイズを変更する

my JTable inside JScrollBar

も、私はregisteringためJPanelを持っているとJTableはJTableは表示されますregistering後のように、レコードが保存されたことを検証します。しかし、私はJTableまたはさらにJScrollPaneのサイズに設定した場合、何も私のJTableに表示されません。ここ

は私のJTableのためのコードです:私は助けとどの下さいmain JFrame

import javax.swing.*; 
import java.awt.*; 

public class ViewPanel extends JPanel{ 

    ViewPanel(){ 
     setName("panelView"); 
     setLayout(new BorderLayout()); 
     setPreferredSize(new Dimension(880,70)); 

     add(new JScrollPane(new ViewTablePanel()), BorderLayout.CENTER); 
     add(new ViewButtonsPanel(), BorderLayout.SOUTH); 
    } 
} 

で呼ばれるようにJTableを呼び出すところ

import javax.swing.*; 
import javax.swing.table.*; 
import java.awt.*; 

public void setColumns(){ 
     ViewTablePanel.tblModel=new DefaultTableModel(); 
     ViewTablePanel.tblModel.setColumnIdentifiers(column); 
    } 

public class ViewTablePanel extends JPanel{ 
    static JTable tblVoters; 
    static DefaultTableModel tblModel; 

    ViewTablePanel(){  
     setBorder(BorderFactory.createTitledBorder("Voter's Information Table")); 

     data=new Database(); 
     setColumns(); 
     data.retrieveRecords(); 

     ViewTablePanel.tblVoters=new JTable(ViewTablePanel.tblModel); 


     add(new JScrollPane(ViewTablePanel.tblVoters)); 
    } 
} 

import javax.swing.*; 
import javax.swing.table.*; 
import java.io.*; 
import java.util.*; 
public class Database { 
    static String [] column={"VOTERS NUMBER", 
     "LAST NAME", "FIRST NAME", 
     "MIDDLE NAME", "GENDER", 
     "STATUS", "WEIGHT", 
     "HEIGHT", "BIRTH MONTH", 
     "BIRTH DAY", "BIRTH YEAR", 
     "BIRTH CITY/MUN.", "BIRTH PROVINCE", 
     "PROVINCE", "CITY/MUN", "BARANGAY", 
     "HOUSE NO./ST.", 
     "# MONTHS IN CITY RESIDENCE", 
     "# YEARS IN CITY RESIDENCE", 
     "# YEARS IN PHIL. RESIDENCE", 
     "OCCUPATION", "TIN NUMBER", 
     "CITIZENSHIP", "CITIZEN SINCE", 
     "FIRST-MOTHER", "MIDDLE-MOTHER", 
     "LAST-MOTHER", "FIRST-FATHER", 
     "MIDDLE-FATHER", "LAST-FATHER"}; 
    static Vector rows; 
    static File fileNew; 
    static FileWriter fileWrite; 
    static FileReader fileRead; 
    static Scanner read; 

    public Database() { 
     fileNew=new File("Voters.txt"); 
     fileWrite=null; 
     fileRead=null; 
     read=null; 
    } 
    public void retrieveRecords(){ 
     String holdStr=""; 
     try { 
      fileRead=new FileReader(fileNew); 
      read=new Scanner(fileRead); 

      while(read.hasNext()){ 
       holdStr+=read.nextLine()+"\n"; 
      } 
      read.close(); 

      StringTokenizer strToken=new StringTokenizer(holdStr, "/"); 

      while(strToken.hasMoreElements()){ 
       rows=new Vector(); 
       for(int i=0; i<column.length; i++){ 
        rows.add(strToken.nextElement()); 
       } 
       ViewTablePanel.tblModel.addRow(rows); 
      } 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

    } 
} 

、ここでは、提案は本当にありがとうございます:)

+0

を役に立てば幸い次に、マウスの右ボタンをクリックして、「surround by scrollPane」を選択してください。 –

+0

@ElSam提案に感謝します! :)しかし、私はすでに私がドラッグアンドドロップでコードを理解するとは思わないと同時に開始したとしてハードコーディングをしようとしている。とにかくありがとうございます:) – luh

+0

jTableのドラッグアンドドロップによって生成されたコードに関しては、本当に簡単です。 –

答えて

1

JScrollPaneは、ビューポート、オプションの垂直および水平スクロールバー、およびオプションの行見出しおよび列見出しビューポートを管理します。 ViewPortビューにスクロール可能なクライアント(Jtableなど)を置く必要があり、クライアントではなくscrollPaneのサイズを変更するだけで済みます。

ドキュメントを確認してください。JScrollPane doc

public class ViewTablePanel extends JPanel{ 
    static JTable tblVoters; 
    static DefaultTableModel tblModel; 

    ViewTablePanel(){  
    setBorder(BorderFactory.createTitledBorder("Voter's Information Table")); 

    data=new Database(); 
    setColumns(); 
    data.retrieveRecords(); 

    ViewTablePanel.tblVoters=new JTable(ViewTablePanel.tblModel); 

    JScrollPane scrollPane = new JScrollPane(); 
    scrollPane.setBounds(x,y,width,height); 
    add(scrollPane); 
    scrollPane.setViewportView(ViewTablePanel.tblVoters); 
    } 
} 

私はあなたがDRAPをチェックして、テーブルのサイズを変更するためのGUIを落とし、私はスイングで働いていたとき、私はドラッグとのJTableをドロップすることができ、それは

関連する問題