2017-06-09 3 views
0

にするJScrollPaneを追加すると、どのように私はJFrameのにこのJTableのとするJScrollPaneを追加することができ、それが私は、この関数createDatabaseViewGUIを通じてのJFrameにするJScrollPaneを追加したいのJFrame

package schoolclient; 

import java.awt.Dimension; 
import java.net.MalformedURLException; 
import java.rmi.Naming; 
import java.rmi.NotBoundException; 
import java.rmi.RemoteException; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.ListSelectionModel; 
import javax.swing.event.ListSelectionEvent; 
import javax.swing.event.ListSelectionListener; 
import javax.swing.table.DefaultTableModel; 

import schoolserver.SchoolInterface; 

public class RMIClient extends JFrame { 
    SchoolInterface sii = null; 
    Object data = null; 
    public static void main(String[] args) { 
     RMIClient rmic = new RMIClient(); 
     rmic.getSchoolInstacne(); 
     //rmic.createDatabaseViewGUI(); 
     JFrame jFrame = new JFrame(); 
     jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     jFrame.setVisible(true); 
     jFrame.setSize(270, 320); 
     jFrame.setContentPane(rmic.createDatabaseViewGUI()); 
     //Object[] o = rmic.getDatabaseToList(); 
     //for(Object o : rmic.getDatabaseToList()) 
     //System.out.println(o); 
    } 

    public void getSchoolInstacne() { 
     try { 
      sii = (SchoolInterface) Naming.lookup("SchoolServer"); 
     } 
     catch (RemoteException | MalformedURLException | NotBoundException e) { 
      e.printStackTrace(); 
     } 
    } 

    public ArrayList getDatabaseToList() { 

     ArrayList<Object> data = null; 
     try { 
      data = sii.getDatabsesName(); 

     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return data; 
    } 

    public void createDatabaseViewGUI() { 
     Object[] x = new Object[10]; 
     int i = 0; 
     for(Object o : getDatabaseToList()) 
      x[i++] = o; 
     DefaultTableModel defaultTable = new DefaultTableModel(); 
     defaultTable.addColumn("Databses Names", x); 
     JTable jTable = new JTable(defaultTable); 
     jTable.setPreferredScrollableViewportSize(new Dimension(250, 350)); 
     jTable.setFillsViewportHeight(true); 
     JScrollPane scrollPane = new JScrollPane(jTable); 
     jTable.getColumnModel().getColumn(0).setPreferredWidth(150); 
     int[] selection = jTable.getSelectedRows(); 
      for (int j = 0; j < selection.length; j++) { 
      selection[j] = jTable.convertRowIndexToModel(selection[j]); 
     super.add(scrollPane); 

     jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     ListSelectionModel lsm = jTable.getSelectionModel(); 
     lsm.addListSelectionListener(new ListSelectionListener() { 
      public void valueChanged(ListSelectionEvent e) { 
       ListSelectionModel lsm = (ListSelectionModel)e.getSource(); 
       int row = jTable.getSelectedRow(); 
       data = (Object)jTable.getValueAt(row, 1); 
      } 
     }); 
      } 
    } 
} 
作業を取得、私はこれを行う方法を導く与えることができます
+1

は、次の2つのJFramesを作成しています。それらのJFramesの1つだけを表示させます。また、JScrollPaneは一度に1つのJFrameにしか属せません。 'JFrame jFrame = new JFrame();'を 'JFrame jFrame = rmic;'に変更してみてください。 – VGR

+0

あなたの2つの主な問題が述べられています。それらを修正し、何が起こるかを見てください。 – markbernard

+0

私はあなたが私のためにここで変更を行う意志を行うことができませんplz – faisal

答えて

1

私はあなたがここに問題があると推測することができます:rmic.createDatabaseViewGUI()。この方法はvoidにはできません。値を返す必要があります。 documentationから

jFrame.getContentPane(rmic.createDatabaseViewGUI()); 

: `新しいRMIClient`と1と`新しいJFrame`との1:

setContentPane(Container contentPane) 
Sets the contentPane property. 
0
package schoolclient; 

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.net.MalformedURLException; 
import java.rmi.Naming; 
import java.rmi.NotBoundException; 
import java.rmi.RemoteException; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.border.EmptyBorder; 
import javax.swing.event.ListSelectionEvent; 
import javax.swing.event.ListSelectionListener; 
import javax.swing.table.DefaultTableModel; 

import schoolserver.SchoolInterface; 

import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.ListSelectionModel; 

public class RMIClient1 extends JFrame { 

    private JPanel contentPane; 
    private JTable table; 
    SchoolInterface sii = null; 
    String data = null; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 

     RMIClient1 frame = new RMIClient1(); 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        frame.setResizable(false); 
        frame.setVisible(true); 
       } catch (Exception e) { 
        JOptionPane.showMessageDialog(null, "Couldn't able to load GUI."); 
        //e.printStackTrace(); 
       } 
      } 
     });  
    } 

    /** 
    * Create the frame. 
    */ 
    public RMIClient1() { 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setBounds(100, 100, 250, 300); 
     contentPane = new JPanel(); 
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     contentPane.setLayout(new BorderLayout(0, 0)); 
     setContentPane(contentPane); 

     JScrollPane scrollPane = new JScrollPane(); 
     contentPane.add(scrollPane, BorderLayout.CENTER); 
     this.getSchoolInstacne(); 
     table = new JTable(createView()){ 
      public boolean isCellEditable(int row, int column) {     
       return false;    
     } 
     }; 
     this.tableValues(table); 
     scrollPane.setViewportView(table); 

    } 


    public void getSchoolInstacne() { 
     try { 
      sii = (SchoolInterface) Naming.lookup("SchoolServer"); 
     } 
     catch (RemoteException | MalformedURLException | NotBoundException e) { 
      JOptionPane.showMessageDialog(null, "Error in connecting to Server"); 
      //e.printStackTrace(); 
     } 
    } 

    public ArrayList getDatabaseToList() { 

     ArrayList<Object> data = null; 
     try { 
      data = sii.getDatabsesName(); 

     } 
     catch (SQLException e) { 
      JOptionPane.showMessageDialog(null, "Error in SQL"); 
      //e.printStackTrace(); 
     } 
     catch (RemoteException e) { 
      JOptionPane.showMessageDialog(null, "Error in connecting to Server"); 
      //e.printStackTrace(); 
     } 
     return data; 
    } 

    Object[] createArray() { 
     Object[] x = new Object[10]; 
     int i = 0; 
     for(Object o : getDatabaseToList()) 
      x[i++] = o; 

     return x; 
    } 

    DefaultTableModel createView() { 
     DefaultTableModel defaultTable = new DefaultTableModel(); 
     defaultTable.addColumn("Databses", createArray()); 

     return defaultTable; 
    } 

    public void tableValues(JTable table) { 
     table.getColumnModel().getColumn(0).setPreferredWidth(150); 
     int[] selection = table.getSelectedRows(); 
      for (int j = 0; j < selection.length; j++) { 
      selection[j] = table.convertRowIndexToModel(selection[j]); 
      } 
     table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     ListSelectionModel lsm = table.getSelectionModel(); 
     lsm.addListSelectionListener(new ListSelectionListener() { 
      @Override 
      public void valueChanged(ListSelectionEvent e) { 
       // TODO Auto-generated method stub 
       if(e.getValueIsAdjusting()){ 
       ListSelectionModel lsm = (ListSelectionModel)e.getSource(); 
       int row = table.getSelectedRow(); 
       data = (String) table.getValueAt(row, 0); 
       lsm.setValueIsAdjusting(false); 
       SchoolClientGUI frame = new SchoolClientGUI(data); 
       frame.setVisible(true); 
       } 
      } 
     }); 
    } 

    /*public void setOpen(String data) { 
     SchoolClientGUI frame = new SchoolClientGUI(data); 
     frame.setVisible(true); 
    } 
    */ 
} 
関連する問題