private void addRightPanel() {
        
        JPanel rightPanel = new JPanel();
        rightPanel.setLayout(new GridLayout(2,1));
        JPanel upperPanel = new JPanel();
        upperPanel.setLayout(new BorderLayout());
        JLabel upperLabel = new JLabel("Contents of Tabbed Pane", SwingConstants.CENTER);
        Vector tabCont = new Vector();
        for ( int i = 0; i < 20; i++ ) {
            tabCont.add("" + (i+1) + ": ");
        }
        JList contList = new JList( tabCont );
        upperPanel.add(upperLabel, BorderLayout.NORTH);
        upperPanel.add(new JScrollPane(contList), BorderLayout.CENTER);
        
        JPanel lowerPanel = new JPanel();
        lowerPanel.setLayout(new BorderLayout());
        JLabel lowerLabel = new JLabel("Messages from Server", SwingConstants.CENTER);
        JTextArea messageArea = new JTextArea(10, 20);
        messageArea.setEditable(false);
        lowerPanel.add(lowerLabel, BorderLayout.NORTH);
        lowerPanel.add(new JScrollPane(messageArea), BorderLayout.CENTER);
        
        rightPanel.add(upperPanel);
        rightPanel.add(lowerPanel);
        container.add( rightPanel, BorderLayout.EAST );
        
    }
    
    private void addBottomPanel() {
        
        JPanel bottomPanel = new JPanel();
        bottomPanel.setLayout( new BorderLayout() );
        
        JPanel selectionPanel = new JPanel();
        selectionPanel.setLayout( new BorderLayout() );
        
        displayPanel = new JPanel();
        displayPanel.setLayout( new BorderLayout() );
        
        bottomPanel.add( selectionPanel, BorderLayout.WEST );
        bottomPanel.add( displayPanel, BorderLayout.CENTER );
        //bottomPanel.add( tabbedPane, BorderLayout.CENTER );
        JTabbedPane tabbedPane = new JTabbedPane();
        //bottomPanel.add( tabbedPane, BorderLayout.CENTER );
       // JLabel label1 = new JLabel("panel 1", SwingConstants.CENTER);
        JPanel panel1 = new JPanel();
        JPanel panel4 = new JPanel();
      //  panel1.add( label1 );
        panel1.setLayout( new GridLayout(1,8) );
        panel1.add( new JButton( "Symbol" ) );
        panel1.add( new JButton( "Last Trade" ) );
        panel1.add( new JButton( "Trade Time" ) );
        panel1.add( new JButton( "Change" ) );
        panel1.add( new JButton( "Prev Close" ) );
        panel1.add( new JButton( "Open" ) );
        panel1.add( new JButton( "1y Target Est" ) );
        panel1.add( new JButton( "Day's Range" ) );
       // tabbedPane.addTab( "Tab1", panel1 );
       panel4.setLayout( new BorderLayout() );
       panel4.add(panel1,BorderLayout.NORTH);
       panel4.add(table,BorderLayout.CENTER);
       tabbedPane.addTab( "Tab1", panel4 );
        
       // JLabel label2 = new JLabel("panel 2", SwingConstants.CENTER);
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();
       // panel2.add( label2 );
        panel2.setLayout( new GridLayout(1,8) );
      //  panel2.setLayout( new FlowLayout() );
        panel2.add( new JButton( "Symbol" ) );
        panel2.add( new JButton( "52WK_range" ) );
        panel2.add( new JButton( "Volume" ) );
        panel2.add( new JButton( "Avg Vol" ) );
        panel2.add( new JButton( "Market Cap" ) );
        panel2.add( new JButton( "P/E (ttm)" ) );
        panel2.add( new JButton( "EPS (ttm)" ) );
        panel2.add( new JButton( "Div & Yield" ) );
        //displayPanel.setLayout( new GridLayout(2,1) );
       // displayPanel.add( table, BorderLayout.CENTER );
       // tabbedPane.addTab( "Tab2", panel2 );
       // panel2.setLayout( new BorderLayout() );
       // panel2.add(table,BorderLayout.CENTER);
        
        
       panel3.setLayout( new BorderLayout() );
       panel3.add(panel2,BorderLayout.NORTH);
       panel3.add(table2,BorderLayout.CENTER);
       tabbedPane.addTab( "Tab2", panel3 );
       // displayPanel.add(panel2);
        //displayPanel.add( table);
        container.add( tabbedPane, BorderLayout.CENTER );
       //tabbedPane.addActionListener();
         //int index =tabbedPane.getSelectedIndex();
      // if (tabbedPane.getSelectedIndex() == tabbedPane.indexOfTab(Tab1)) 
       //  System.out.println(1);
      // if (tabbedPane.getSelectedIndex() == tabbedPane.indexOfTab(Tab2)) 
       //  System.out.println(2); 
       
       
       JLabel selectionLabel =
                new JLabel( "                               Select Stocks" );
        selectionPanel.add( selectionLabel, BorderLayout.NORTH );
        //displayPanel.add( titlePanel, BorderLayout.NORTH );
        displayPanel.add( tabbedPane, BorderLayout.NORTH );
        //displayPanel.add(panel2, BorderLayout.NORTH );
        //displayPanel.add(tabbedPane.BorderLayout.NORTH);
         //bottomPanel.add( tabbedPane, BorderLayout.NORTH );
        stockList = new JList( stockName );
        selectionPanel.add( new JScrollPane( stockList ),
                BorderLayout.CENTER );
        
        JButton getStockButton = new JButton( "Get Stocks" );
        JButton delStockButton = new JButton( "Delete Stocks" );
        JButton submitButton = new JButton( "Submit" );
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout( new GridLayout(1,3) );
        buttonPanel.add( getStockButton );
        buttonPanel.add( delStockButton );
        buttonPanel.add( submitButton );
        
        selectionPanel.add( buttonPanel, BorderLayout.SOUTH );
        
        getStockButton.addActionListener(
                
                new ActionListener() {
            
            public void actionPerformed( ActionEvent event ) {
                getStocks();
            }
        }
        
        ); // end call to addActionListener
        
        delStockButton.addActionListener(
                new ActionListener() {
            
            public void actionPerformed( ActionEvent event ) {
                updateStocks();
            }
        }
        
        );
        // tabbedPane.add(table2,BorderLayout.CENTER);
        //displayPanel.add( table, BorderLayout.CENTER );
        container.add( bottomPanel, BorderLayout.SOUTH );
        
    }
    
    public void getStocks() {
        // retrieve selected indices
        int selectedIndices[] = stockList.getSelectedIndices();
        
        for ( int i = 0; i < selectedIndices.length; i++ ) {
            String[] currentRow = {
                stockSymbol[ selectedIndices[ i ] ],
                stockData[ selectedIndices[ i ] ][ 0 ],
                stockData[ selectedIndices[ i ] ][ 1 ],
                stockData[ selectedIndices[ i ] ][ 2 ],
                stockData[ selectedIndices[ i ] ][ 3 ],
                stockData[ selectedIndices[ i ] ][ 4 ],
                stockData[ selectedIndices[ i ] ][ 5 ],
                stockData[ selectedIndices[ i ] ][ 6 ],
                stockData[ selectedIndices[ i ] ][ 7 ],
                stockData[ selectedIndices[ i ] ][ 8 ],
                stockData[ selectedIndices[ i ] ][ 9 ],
                stockData[ selectedIndices[ i ] ][ 10 ],
                stockData[ selectedIndices[ i ] ][ 11 ],
                stockData[ selectedIndices[ i ] ][ 12 ],
                stockData[ selectedIndices[ i ] ][ 13 ]
                        
            };
            if ( !selectedSymbol.contains(
                    stockSymbol[ selectedIndices[ i ] ]) ) {
                stockInfo.addRow( currentRow );
                selectedSymbol.add( stockSymbol[ selectedIndices[ i ] ] );
                rowsData.add( currentRow );
            }
        }
    } // end method getStocks

解决方案 »

  1.   

    public void getStocks() {
            // retrieve selected indices
            int selectedIndices[] = stockList.getSelectedIndices();
            
            for ( int i = 0; i < selectedIndices.length; i++ ) {
                String[] currentRow = {
                    stockSymbol[ selectedIndices[ i ] ],
                    stockData[ selectedIndices[ i ] ][ 0 ],
                    stockData[ selectedIndices[ i ] ][ 1 ],
                    stockData[ selectedIndices[ i ] ][ 2 ],
                    stockData[ selectedIndices[ i ] ][ 3 ],
                    stockData[ selectedIndices[ i ] ][ 4 ],
                    stockData[ selectedIndices[ i ] ][ 5 ],
                    stockData[ selectedIndices[ i ] ][ 6 ],
                    stockData[ selectedIndices[ i ] ][ 7 ],
                    stockData[ selectedIndices[ i ] ][ 8 ],
                    stockData[ selectedIndices[ i ] ][ 9 ],
                    stockData[ selectedIndices[ i ] ][ 10 ],
                    stockData[ selectedIndices[ i ] ][ 11 ],
                    stockData[ selectedIndices[ i ] ][ 12 ],
                    stockData[ selectedIndices[ i ] ][ 13 ]
                            
                };
                if ( !selectedSymbol.contains(
                        stockSymbol[ selectedIndices[ i ] ]) ) {
                    stockInfo.addRow( currentRow );
                    selectedSymbol.add( stockSymbol[ selectedIndices[ i ] ] );
                    rowsData.add( currentRow );
                }
            }
        } // end method getStocks
        
        public void updateStocks() {
            // retrieve selected indices
            int selectedIndices[] = table.getSelectedRows();
            int m = selectedIndices.length;
            
            for ( int i = m-1; i > -1; i-- ) {
                selectedSymbol.removeElementAt( selectedIndices[ i ] );
                rowsData.removeElementAt( selectedIndices[ i ] );
                stockInfo.removeRow( selectedIndices[ i ] );
            }
        } // end method updateStocks
        
        // execute StockServiceClient
        public static void main( String args[] ) {
            StockServiceClient client = null;
            
            // if no sever IP address or host name specified,
            // use "localhost"; otherwise use specified host
            if ( args.length == 0 )
                client = new StockServiceClient( "localhost" );
            else
                client = new StockServiceClient( args[ 0 ] );
            
            // configure and display application window
            client.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            
    //      client.pack();
    //      client.setResizable( true );
    //      client.setVisible( true );
        }
    }