JPanel
이 보이지 않도록 설정되면 여전히 "손댈 수 있습니까?" 마찬가지로 내 프레임에 JPanel
이 있고 패널에는 버튼이 있습니다. 버튼이 보이면 버튼을 눌렀을 때 패널이 보이지 않도록 설정하면 버튼이 여전히 작동합니까?JPanel 가시성
setVisible
실제로 위에서 언급 한 내용을 달성하지 않으려 고합니다.
JPanel
이 보이지 않도록 설정되면 여전히 "손댈 수 있습니까?" 마찬가지로 내 프레임에 JPanel
이 있고 패널에는 버튼이 있습니다. 버튼이 보이면 버튼을 눌렀을 때 패널이 보이지 않도록 설정하면 버튼이 여전히 작동합니까?JPanel 가시성
setVisible
실제로 위에서 언급 한 내용을 달성하지 않으려 고합니다.
@Marvin Jude가 말한 것을 테스트했는지는 알 수 없습니다. 그러나 예를 들어, 부모 컨테이너가 보이지 않을 때 인스턴스는 건드릴 수 없습니다.
panel.setVisible(true);
또는 panel.setVisible(true);
을 사용하십시오.MainPanel
이 보이지 않으면 단추의 수신기가 트리거되지 않습니다.아래 코드를 참조하십시오.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class MyFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public MyFrame(){
MainPanel panel = new MainPanel();
add(panel,BorderLayout.CENTER);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
pack();
panel.setVisible(true);
}
class MainPanel extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
public MainPanel(){
JButton button = new JButton("I am a button");
add(button);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("JButton is clicked...");
}
});
}
}
public static void main(String args[]){
Runnable runnable = new Runnable() {
@Override
public void run() {
MyFrame myFrame = new MyFrame();
myFrame.setVisible(true);
}
};
SwingUtilities.invokeLater(runnable);
}
}
예 테스트 해 보았지만 제대로 작동합니다. 나는 리던던시 척도로서 그를 사용했다. 당신이 말한 것에 관해서는, 이제 어떻게 작동하는지 조금 이해합니다. 고맙습니다! –
표시되지 않도록 설정 되어도 작동하지만 기능을 수행하지 않으려면 .Enabled 메소드를 사용하십시오.
감사합니다! 나는 .enabled 메소드를 사용하는 것에 대해 전혀 생각하지 못했습니다! –
왜 직접 테스트하지 않았습니까? – Flown
[Listeners 중 하나가 시인성에 적합한 JPanel]의 가능한 복제본이 변경되었습니다. (http://stackoverflow.com/questions/10880326/jpanel-which-one-of-listeners-is-proper-forvisibility-is- 변경됨) – SkyWalker
@Flown 나는 왜 그런 말을하는지 이해합니다. 몇 번 시도해 보았습니다. 결과를 다시 확인하고 싶었습니다. Marvin Jude의 대답을 통해 패널의 기능이 표시되지 않을 때 패널의 기능을 사용하지 못하게 할 수있었습니다. –