2011-10-16 3 views
1

어떤 이유인지 Jlist이 내 애플릿에 표시되지 않습니다.Jlist가 애플릿에 나타나지 않거나 표시되지 않습니다.

개별 요소를 클릭 할 때만 슬라이더의 오른쪽에 나타납니다.

나는 행운을 가지고 this.validate()this.repaint()을 시도했다. 누구든지 나를 도울 수 있습니까?

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JApplet; 
import java.awt.Graphics; 
import javax.swing.JList; 
import javax.swing.JRadioButton; 
import javax.swing.JSlider; 
import javax.swing.ListSelectionModel; 

public class HeatingHome extends JApplet implements ActionListener 
{ 
     // declare variables here 

    JRadioButton switchIt = new JRadioButton(); 
    JSlider tempControl = new JSlider(JSlider.VERTICAL, 10, 15, 11); 


    String[] theRooms = {"Porch", "Kitchen", "Living Room", "Hall", "Bedroom 1", "Bathroom", "Bedroom 2"}; 
    JList roomsList = new JList(theRooms); 


    public void init() 
    { 

     setSize(1000,600); 


    } 

    public void paint(Graphics g) 
    { 
     super.paint(g); 


     roomsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     roomsList.setBounds(700, 200, 150, 150); 
     roomsList.setVisible(true); 
     roomsList.setEnabled(true); 
     add(roomsList); 


       //tempControl.addChangeListener(e); 
     tempControl.setMajorTickSpacing(10); 
     tempControl.setPaintLabels(true); 
     tempControl.setMinorTickSpacing(1); 
     tempControl.setPaintTicks(true); 
     tempControl.setBounds(600, 200, 100, 200); 
     tempControl.setEnabled(true); 
     add(tempControl); 



    } 



    @Override 
    public void actionPerformed(ActionEvent e) { 
     throw new UnsupportedOperationException("Not supported yet."); 
    } 
} 

답변

1

애플릿을 칠할 때마다 & 슬라이더가 애플릿에 추가되지만 라디오 버튼은 추가되지 않습니다. 이 얻을 수 있습니다

당신은 시작 :

Heating Home

// <applet code='HeatingHome' width=400 height=200></applet> 
import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.*; 

public class HeatingHome extends JApplet 
{ 
    // declare variables here 
    JRadioButton switchIt = new JRadioButton(); 
    JSlider tempControl = new JSlider(JSlider.VERTICAL, 10, 15, 11); 

    String[] theRooms = {"Porch", "Kitchen", "Living Room", "Hall", "Bedroom 1", "Bathroom", "Bedroom 2"}; 
    JList roomsList = new JList(theRooms); 

    public void init() 
    { 
     // applet size is set by the HTML 
     //setSize(1000,600); 
     setLayout(new BorderLayout()); 

     JPanel gui = new JPanel(new BorderLayout(5,5)); 
     gui.setBackground(Color.ORANGE); 
     gui.setBorder(new EmptyBorder(20,20,20,20)); 

     roomsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     // Use LAYOUTS!!! 
     //roomsList.setBounds(700, 200, 150, 150); 
     // Becomes visible when added to something! 
     //roomsList.setVisible(true); 
     // Enabled by default! 
     //roomsList.setEnabled(true); 
     gui.add(roomsList, BorderLayout.EAST); 

     //tempControl.addChangeListener(e); 
     tempControl.setMajorTickSpacing(10); 
     tempControl.setPaintLabels(true); 
     tempControl.setMinorTickSpacing(1); 
     tempControl.setPaintTicks(true); 
     //tempControl.setBounds(600, 200, 100, 200); 
     //tempControl.setEnabled(true); 
     //add(tempControl); 
     gui.add(tempControl, BorderLayout.WEST); 

     gui.add(switchIt, BorderLayout.NORTH); 

     add(gui); 
     validate(); 
    } 
} 
1

애플릿을 그릴 때마다 많은 컨트롤이 추가됩니다. 즉, 추가 한 모든 새 컨트롤이 적어도 다른 페인트 작업을 트리거한다는 의미입니다.

paint 메서드의 모든 코드를 생성자 또는 유사한 것으로 이동합니다.

paint은 컨트롤의 비주얼을 직접 그리기위한 것입니다. 나는. 제공된 Graphics 개체를 가지고 행복 할 때까지 물건을 처리하십시오. 회화는 일반적으로 예측할 수 없기 때문에 일반적으로 다른 것을 수정하지 않습니다.

관련 문제