2012-08-17 2 views
1

작은 프로그램이 이미 여러 메뉴 항목으로 시작되었습니다.제목과 텍스트 필드를 자바에 추가하기

항목을 클릭하면 프레임에 표시 할 항목이 있고 다른 항목을 클릭하면 첫 번째 항목이 사라지고 두 번째 항목이 표시됩니다.

콘솔로 인쇄 할 수는 있지만 프레임으로 인쇄 할 수 없습니다.

어떤 제안을 감상 할 수있다 : 당신은 프레임에 인쇄되지 않습니다

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class melco extends JFrame{ 


public static void main(String[] args){ 
    JFrame frame = new JFrame("Salesman Resources"); 
    frame.setVisible(true); 
    frame.setSize(1000,800); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JMenuBar menubar = new JMenuBar(); 
    frame.setJMenuBar(menubar); 

    JMenu file = new JMenu("File"); 
    menubar.add(file); 
    JMenuItem exit = new JMenuItem("Exit"); 
    file.add(exit); 

    JMenu orders = new JMenu("Orders"); 
    menubar.add(orders); 
    JMenuItem bookedorders = new JMenuItem("Booked Orders"); 
    orders.add(bookedorders); 
    JMenuItem backorders = new JMenuItem("BackOrders"); 
    orders.add(backorders); 

    JMenu customers = new JMenu("Customers"); 
    menubar.add(customers); 
    JMenuItem customersales = new JMenuItem("Customer Sales"); 
    customers.add(customersales); 
    JMenuItem customeritems = new JMenuItem("Customer Items"); 
    customers.add(customeritems); 
    JMenuItem customerprices = new JMenuItem("Customer Prices"); 
    customers.add(customerprices); 
    JMenuItem customerlistings = new JMenuItem("Customer Listings"); 
    customers.add(customerlistings); 

    JMenu inv = new JMenu("INV"); 
    menubar.add(inv); 
    JMenuItem surplusinv = new JMenuItem("Surplus Inv"); 
    inv.add(surplusinv); 
    JMenuItem stockinv = new JMenuItem("Stock Inv"); 
    inv.add(stockinv); 

    JMenu search = new JMenu("Searh"); 
    menubar.add(search); 
    JMenuItem itemsearch = new JMenuItem("Item Search"); 
    search.add(itemsearch); 
    JMenuItem customersearch = new JMenuItem("Customer Search"); 
    search.add(customersearch); 

    JMenu menulostsales = new JMenu("Lost Sales"); 
    menubar.add(menulostsales); 
    JMenuItem lostsales = new JMenuItem("Lost Sales"); 
    menulostsales.add(lostsales); 


    JMenu menumarginadvisor = new JMenu("Margin Advisor"); 
    menubar.add(menumarginadvisor); 
    JMenuItem marginadvisor = new JMenuItem("Margin Advisor"); 
    menumarginadvisor.add(marginadvisor); 


    JMenu menumakeandhold = new JMenu("Make and Hold"); 
    menubar.add(menumakeandhold); 
    JMenuItem makeandhold = new JMenuItem("Make and Hold"); 

    menumakeandhold.add(makeandhold); 

    makeandhold.addActionListener(
     new ActionListener(){ 
      public void actionPerformed(ActionEvent e) 
      { 
       System.out.println("Make and Hold is pressed"); 
       System.out.println("Hello World");     
// This is Make and Hold Area 

      } 
     } 
    );   

    class exitaction implements ActionListener { 
     public void actionPerformed (ActionEvent e){ 
     System.exit(0); 
     } 
    } 
     exit.addActionListener(new exitaction()); 


} 

} 
+0

환영 아래의 기술에 의해 paint 메서드를 재정의해야합니다. – kleopatra

답변

1

프레임에 인쇄 방법이 없기 때문에 프레임에 인쇄 할 수 없습니다. 프레임에 텍스트를 직접 추가하려면 텍스트를 그려야합니다. 즉 잠재적 인 헬퍼를 들어, 자바 명명 규칙을 배우십시오 그들에 충실하기 쉽도록이 포럼 :-)에

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class melco extends JFrame{ 

    String str; 
    int x = 100, y = 100; 

    public melco(String title){ 
    super(title); 
    } 

    void print(String s){ 
    str = s; 
    repaint(); 
    } 

    public void paint(Graphics g){ 
    super.paint(g); 
    if (str != null) 
     g.drawString(str, x, y); 
    } 
    public static void main(String[] args){ 
    final melco frame = new melco("Salesman Resources"); 
    frame.setVisible(true); 
    frame.setSize(1000,800); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JMenuBar menubar = new JMenuBar(); 
    frame.setJMenuBar(menubar); 

    JMenu file = new JMenu("File"); 
    menubar.add(file); 
    JMenuItem exit = new JMenuItem("Exit"); 
    file.add(exit); 

    JMenu orders = new JMenu("Orders"); 
    menubar.add(orders); 
    JMenuItem bookedorders = new JMenuItem("Booked Orders"); 
    orders.add(bookedorders); 
    JMenuItem backorders = new JMenuItem("BackOrders"); 
    orders.add(backorders); 

    JMenu customers = new JMenu("Customers"); 
    menubar.add(customers); 
    JMenuItem customersales = new JMenuItem("Customer Sales"); 
    customers.add(customersales); 
    JMenuItem customeritems = new JMenuItem("Customer Items"); 
    customers.add(customeritems); 
    JMenuItem customerprices = new JMenuItem("Customer Prices"); 
    customers.add(customerprices); 
    JMenuItem customerlistings = new JMenuItem("Customer Listings"); 
    customers.add(customerlistings); 

    JMenu inv = new JMenu("INV"); 
    menubar.add(inv); 
    JMenuItem surplusinv = new JMenuItem("Surplus Inv"); 
    inv.add(surplusinv); 
    JMenuItem stockinv = new JMenuItem("Stock Inv"); 
    inv.add(stockinv); 

    JMenu search = new JMenu("Searh"); 
    menubar.add(search); 
    JMenuItem itemsearch = new JMenuItem("Item Search"); 
    search.add(itemsearch); 
    JMenuItem customersearch = new JMenuItem("Customer Search"); 
    search.add(customersearch); 

    JMenu menulostsales = new JMenu("Lost Sales"); 
    menubar.add(menulostsales); 
    JMenuItem lostsales = new JMenuItem("Lost Sales"); 
    menulostsales.add(lostsales); 


    JMenu menumarginadvisor = new JMenu("Margin Advisor"); 
    menubar.add(menumarginadvisor); 
    JMenuItem marginadvisor = new JMenuItem("Margin Advisor"); 
    menumarginadvisor.add(marginadvisor); 


    JMenu menumakeandhold = new JMenu("Make and Hold"); 
    menubar.add(menumakeandhold); 
    JMenuItem makeandhold = new JMenuItem("Make and Hold"); 

    menumakeandhold.add(makeandhold); 

    makeandhold.addActionListener(
     new ActionListener(){ 
     public void actionPerformed(ActionEvent e) 
     { 
      System.out.println("Make and Hold is pressed"); 
      frame.print("Make and Hold is pressed"); 
      System.out.println("Hello World"); 
      frame.print("Hello World"); 
// This is Make and Hold Area 

     } 
     } 
    ); 

    class exitaction implements ActionListener { 
     public void actionPerformed (ActionEvent e){ 
     System.exit(0); 
     } 
    } 
    exit.addActionListener(new exitaction()); 


    } 

} 
+0

감사합니다. 이것이 앞으로 나아갈 필요가있는 것입니다! 다음으로 텍스트 상자와 단추를 다른 이벤트 처리기에 추가하려고 시도합니다. – FGatlin

0

. JTextArea를 추가하고 그것에 데이터를 추가하려고 할 것입니다.

-1

왜 JMenuItems에 MouseListener를 추가하지 않습니까? 가장 최근의 "message"참조를 멤버 변수로 잡고 다른 MouseListener가 시작되면 JFrame에서 제거 할 수 있습니다.

0

좋아, 프레임에 표시 할 내용이 필요합니까? JLabel ??

frame.setLayout(new BorderLayout()); 
JLabel lblMessage = new JLabel(); // You'll probably need to declare this as final 
frame.add(lblMessage); 

는 그런 다음 조치 수신기에서 I는 콘솔에 인쇄 할 수 있습니다

public void actionPerformed (ActionEvent e){ 
    label.setText("This is a message from the menu item"); 
} 
1

처럼 뭔가를 할 수 있지만, 프레임에 인쇄 할 수없는 것.

정확히 무엇을 의미합니까? 당신이 프레임에 제목을 설정하려면

당신은 setTitle이라는 사용할 수 있습니다 :

frame.setTitle("a title"); 

을 그렇지 않으면, 당신은 적어도 당신의 JFrame의 일부 구성 요소를 추가 할 텍스트를 추가합니다.

label.setText("some text"); 
1
  • 이제까지 그것을시키는에서 떨어져 다른 것들에 대한 EDT (이벤트 디스패처 스레드)를 사용하지 마십시오 : 텍스트를 변경해야 할 때

    JLabel label = new JLabel(); 
    frame.getContentPane().add(label); 
    

    : 는 JLabel에서보세요 GUI를 처리하십시오.Java GUI의 메소드는 이벤트 디스패처 스레드에 대한 GUI 구성을 스케줄 한 후 종료됩니다. 그래서 그것을 다루는 EDT입니다.

예는 :

public static void main(String[] args){ 

    EventQueue.invokeLater(new Runnable(){ 

     public void run(){ 

      myframe.setVisible(true); 

      } 
     } 
    } 
  • 당신은 제목 같은 것들을 추가 JLable 뭔가를해야합니다.

  • JPanelJFrame에 추가 한 다음 JTextField을 추가 할 수 있습니다.

관련 문제