2016-07-26 1 views
0

次のボタンを押すとCustomerページに移動します。ボタンをクリックしても何も起こりません。私はカードレイアウトを使用してパネルを切り替えていますが、ボタンを押した後に特定のパネルを表示させようとすると、何も起こりません。

これは私のコードです パッケージjavaapplication1;

import javax.swing.*; 
import java.lang.*; 
import java.awt.*; 
import java.awt.Color; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 
import javax.swing.JFrame; 

public class Test extends javax.swing.JPanel implements ActionListener{ 

JButton firstButton, lastButton, nextButton, previousButton; 
JPanel cardPanel; 
String cardNames[] = new String[3]; 
int cardCounter = 0; 

public JPanel createContentPane(){ 

    JPanel totalGUI = new JPanel(); 

    JPanel buttonPanel = new JPanel(); 
    buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS)); 

    buttonPanel.add(Box.createRigidArea(new Dimension(10,0))); 

    previousButton = new JButton("<- Previous"); 
    previousButton.addActionListener(this); 
    buttonPanel.add(previousButton); 
    buttonPanel.add(Box.createHorizontalGlue());   

    firstButton = new JButton("First"); 
    firstButton.addActionListener(this); 
    buttonPanel.add(firstButton); 
    buttonPanel.add(Box.createHorizontalGlue()); 

    lastButton = new JButton("Last"); 
    lastButton.addActionListener(this); 
    buttonPanel.add(lastButton); 
    buttonPanel.add(Box.createHorizontalGlue()); 

    nextButton = new JButton("Next ->"); 
    nextButton.addActionListener(this); 
    buttonPanel.add(nextButton); 
    buttonPanel.add(Box.createRigidArea(new Dimension(10,0))); 

    JPanel Shop = new JPanel(); 
    Shop panel1 = new Shop(); 
    Shop.add(panel1); 

    JPanel Items = new JPanel(); 
    Items panel2 = new Items(); 
    Items.add(panel2); 

    JPanel Customers = new JPanel(); 
    Customers panel3 = new Customers(); 
    Customers.add(panel3); 

    cardPanel = new JPanel(new CardLayout(150, 50)); 

    cardNames[0] = "Component.CENTER"; 
    cardNames[1] = "Component.BOTTOM_ALIGNMENT"; 
    cardNames[2] = "Component.TOP_ALIGNMENT"; 

    cardPanel.add(Shop, cardNames[0]); 
    cardPanel.add(Items, cardNames[1]); 
    cardPanel.add(Customers, cardNames[2]); 

    JPanel bottomPanel = new JPanel(); 
    bottomPanel.setLayout(new BorderLayout()); 

    bottomPanel.add(cardPanel, BorderLayout.CENTER); 
    bottomPanel.add(buttonPanel, BorderLayout.PAGE_START); 

    totalGUI.add(bottomPanel); 
    return totalGUI; 
} 

public void actionPerformed(ActionEvent e) { 


    if(e.getSource() == nextButton) 
    { 
     CardLayout cl = (CardLayout)(cardPanel.getLayout()); 

     cl.show(cardPanel, "Customers"); 
    } 
    /* 
    if(e.getSource() == firstButton) 
    { 
     cl.first(cardPanel); 
     cardCounter = 0; 
    } 
    else if(e.getSource() == lastButton) 
    { 
     cl.last(cardPanel); 
     cardCounter = 2; 
    } 
    else 
    } 
    else if(e.getSource() == previousButton) 
    { 
     cl.previous(cardPanel); 
     if(cardCounter > 0) 
     { 
      cardCounter--; 
     } 
     else 
     { 
      cardCounter = 2; 
     }*/ 
    } 


protected static void createAndShowGUI() { 

    JFrame.setDefaultLookAndFeelDecorated(true); 
    JFrame frame = new JFrame(""); 

    Test demo = new Test(); 
    frame.setContentPane(demo.createContentPane()); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
} 

public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGUI(); 
     } 
    }); 
} 

}

なぜこのような場合は?何か不足していますか? 私はCardlayoutを初めて使用しており、完全に動作するかどうかわかりません

答えて

0

疑問がある場合は、documentationにチェックを入れてください。

CardLayout.addLayoutComponentから:constraintsによって指定されたオブジェクトは、文字列でなければなりません

。カードレイアウトは、この文字列を特定のカードへのランダムアクセスに使用できるキーと値のペアとして格納します。 showメソッドを呼び出すと、アプリケーションは指定された名前のコンポーネントを表示できます。すなわち

、あなたがCardLayout.show に渡す文字列 CardLayoutにコンポーネントを追加するときに、制約として提供される文字列のものと同一でなければなりません。使用している

制約は以下のとおりです。

  • "Component.CENTER"
  • "Component.BOTTOM_ALIGNMENT"
  • "Component.TOP_ALIGNMENT" 何この試合の

なしCardLayout.showに渡しています:

cl.show(cardPanel, "Customers"); 
関連する問題