2013-11-04 2 views
0

클릭 한 모든 이미지에 대해 사용자가 이미지를 클릭하고 카드 레이아웃이 변경된 패널을 변경하길 원합니다. 그래서 난 textarea와 하나의 파란색 backgound, 내가 프로그램을 textarea없이 textarea와 패널을 시작, 내가 그것을 클릭하면 이미지를 클릭하면 푸른 패널을 보여, 왜 내가 textarea 볼 수 없습니까?Java Cardlayout dont't textarea 표시

난 당신이 이전에 만든 설정을 훼방 JScrollPane 생성 코드의 끝에서 코드

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

에서 이미지의 위치를 ​​제거했습니다. txtrGhgJScrollPane의 생성자에 전달합니다. 따라서 두 개의 다른 컨테이너에 동시에 포함될 수없는 JTextArea으로 스크롤 창에 텍스트 영역이 표시됩니다. 그 후 panelTest1에 더 이상 JTextArea "txtrGhg"이 포함되지 않지만 CardLayout은 요청한대로 panelTest1으로 표시됩니다. 그러나 그것은 비어 있습니다.

+0

감사합니다. Holger가 문제였습니다. 지금은 scrollpane과 함께 작동하도록 노력하고 있습니다. – user2266381