2013-11-04 53 views
0

我希望用戶點擊一個圖像,並且點擊每個圖像的cardlayout更改面板。所以我有一個面板textarea和一個只有一個藍色的背景,當我啓動程序面板textarea顯示沒有textarea,當我點擊圖像顯示藍色面板,爲什麼不能看到textarea?Java cardlayout dosen't show textarea

我已經在代碼

frame = new JFrame("Sandwich deLuxe"); 
    frame.setBounds(100, 100, 741, 522); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JPanel panel = new JPanel(); 
    panel.setBounds(10, 132, 705, 89); 
    frame.getContentPane().add(panel); 
    panel.setLayout(null); 



    JToolBar toolBar = new JToolBar(); 
    toolBar.setBounds(10, 0, 705, 22); 
    frame.getContentPane().add(toolBar); 




    panelCont.setBounds(10, 221, 544, 251); 
    frame.getContentPane().add(panelCont); 
    panelCont.setLayout(cl); 

    JPanel panelTest1 = new JPanel(); 
    JTextArea txtrGhg = new JTextArea(); 
    txtrGhg.setForeground(Color.BLACK); 
    txtrGhg.setBackground(UIManager.getColor("Button.background")); 
    txtrGhg.setEditable(false); 
    txtrGhg.setText("Velkommen til Sandwich deLuxe\r\n\r\nK\u00F8b din mad her!\r\n\r\n1. V\u00E6lg en af kategoriene fra oven.\r\n2. V\u00E6lg dinne retter/sandwichs.\r\n3. Bekr\u00E6ft k\u00F8bet i indk\u00F8bskurven.\r\n4. Din bestilling er modtaget og vi g\u00E5r straks \r\n i gang med at tilberede din mad. "); 
    txtrGhg.setFont(new Font("Monospaced", Font.PLAIN, 18)); 
    panelTest1.add(txtrGhg); 
    panelCont.add(panelTest1, "1"); 

    JPanel panelTest2 = new JPanel(); 
    panelTest2.setBackground(Color.BLUE); 
    panelCont.add(panelTest2,"2"); 
    cl.show(panelCont, "1"); 

    JLabel lblNewLabel = new JLabel("New label"); 
    lblNewLabel.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      cl.show(panelCont, "2"); 
     } 
    }); 
    lblNewLabel.setIcon(new ImageIcon("")); 
    lblNewLabel.setBounds(28, 11, 97, 67); 
    panel.add(lblNewLabel); 



    JScrollPane scrollBar = new JScrollPane(txtrGhg, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
    scrollBar.setViewportBorder(null); 
    scrollBar.setPreferredSize(new Dimension(300,200)); 
    scrollBar.setBorder(BorderFactory.createEmptyBorder()); 
    panelCont.add(scrollBar, "name_171726698118247"); 
    panelCont.setOpaque(true); 

回答

1

去除圖像的位置,在你的代碼的末尾創建JScrollPane挫敗你以前創建的安裝。您在JScrollPane的構造函數中通過txtrGhg。因此,滾動窗格可以幫助您恢復文本區域,因爲您的JTextArea不能同時包含在兩個不同的容器中。之後,panelTest1不再包含您的JTextAreatxtrGhg」,但CardLayout仍然會顯示panelTest1,因爲您已經提出要求。但它是空的。

+0

謝謝Holger,那是個問題,現在我試圖讓它與scrollpane一起工作 – user2266381