2017-03-20 33 views
0

사용자가 체크 박스 메뉴 항목을 선택하면 콘솔의 사용자에게 몇 가지 메시지를 표시하려고합니다. 어떻게해야합니까? 지금은 사용자가 체크 박스를 체크했을 때 메시지가 프레임에만 표시됩니다. 콘솔에 메시지를 표시하는 방법은 무엇입니까?체크 박스 메뉴 항목 선택시 콘솔에 메시지 표시

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.awt.event.ItemEvent; 
import java.awt.event.KeyEvent; 
import javax.swing.BorderFactory; 
import javax.swing.JCheckBoxMenuItem; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 

public class CheckBoxMenu extends JFrame { 

    private JLabel statusbar; 

    public CheckBoxMenu() { 

     initUI(); 
    } 

    private void initUI() { 

     createMenuBar(); 

     statusbar = new JLabel("On Progress..."); 
     statusbar.setBorder(BorderFactory.createEtchedBorder()); 
     add(statusbar, BorderLayout.SOUTH); 

     setTitle("JCheckBoxMenuItem"); 
     setSize(360, 250); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
    } 

    private void createMenuBar() { 

     JMenuBar menubar = new JMenuBar(); 
     JMenu fileMenu = new JMenu("File"); 

     JMenu viewMenu = new JMenu("View"); 
     JCheckBoxMenuItem sbarMi = new JCheckBoxMenuItem("Show Statusbar"); 

     sbarMi.setSelected(true); 

     sbarMi.addItemListener((ItemEvent e) -> { 
      if (e.getStateChange() == ItemEvent.SELECTED) { 
       statusbar.setVisible(true); 
      } else { 
       statusbar.setVisible(false); 
      } 
     }); 

     viewMenu.add(sbarMi); 

     menubar.add(fileMenu); 
     menubar.add(viewMenu); 

     setJMenuBar(menubar); 
    } 

    public static void main(String[] args) { 

     EventQueue.invokeLater(() -> { 
      CheckBoxMenu ex = new CheckBoxMenu(); 
      ex.setVisible(true); 
     }); 
    } 
} 
+0

'System.out.println ("...")'? – MadProgrammer

답변

0

당신은 당신의 리스너에 System.out.println 전화를 사용하거나 로거를 사용할 수 있습니다.

sbarMi.addItemListener((ItemEvent e) -> { 
    if (e.getStateChange() == ItemEvent.SELECTED) { 
     statusbar.setVisible(true); 
     // Using System.out 
     System.out.println("On Progress..."); 
     // Or using a logger (defined somewhere else, using Logger.getLogger or a logging framework.) 
     logger.info("On Progress."); 
    } else { 
     statusbar.setVisible(false); 
    } 
});