2017-05-14 10 views
2

私の大学のプロジェクトでこのセミナーを行っています.を追加するまで3つのメソッドを作成しました。これらのメソッドは、ユーザー(私はそれのスキャナを使用して、私もBufferReaderを試してみました)しかし今はプログラムが実行を停止し、私はterminal.Alsoで書き込みすることはできませんBlueJからエラーの種類を取得していない。 JButtonsJButtons - 入力を許可しない

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

public class Window extends JFrame implements ActionListener { 

JButton b1 = new JButton("Load from file"); 
JButton b2 = new JButton("Save to file"); 
JButton b3 = new JButton("Add hotel and resrvations"); 
JButton b4 = new JButton("Search hotel by id"); 
JButton b5 = new JButton("Search reservation by name"); 

Main m0 = new Main(); 

public Window(Main main0) { 
    super("Management");//Name 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


    b1.addActionListener(this); 
    b2.addActionListener(this); 
    b3.addActionListener(this); 
    b4.addActionListener(this); 
    b5.addActionListener(this); 

    FlowLayout flow = new FlowLayout(); 
    setLayout(flow); 


    add(b1); 
    add(b2); 
    add(b3); 
    add(b4); 
    add(b5); 
    pack(); 

    setVisible(true); 

    m0 = main0; 
} 

public void actionPerformed(ActionEvent ae) { 
    Object source = ae.getSource(); 
    if(source == b1) { 
     m0.loadFile(); 

    }else if(source == b2) { 
     m0.saveFile(); 

    }else if(source == b3) {    
     m0.addHotel(); 

    }else if(source == b4) {    
     m0.searchById(); 

    }else if(source == b5) {    
     m0.searchByName();  
    } 
}} 

同じ問題

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

public class Window extends JFrame implements ActionListener { 

JButton b1 = new JButton("Get input"); 
Main m0 = new Main(); 

public Window(Main main0) { 
    super("Management"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    b1.addActionListener(this); 

    FlowLayout flow = new FlowLayout(); 
    setLayout(flow); 
    add(b1); 

    pack(); 

    setVisible(true); 

    m0 = main0; 
} 

public void actionPerformed(ActionEvent ae) { 
    Object source = ae.getSource(); 
    if(source == b1) { 
     m0.userInput(); 

    } 
} 
につながる、より単純化されたコード

}

とシンプルなメイン

import java.io.*; 
    import java.util.*; 

    public class Main{ 

    public void userInput(){ 
     Scanner scan = new Scanner(System.in); 

     System.out.println("Give hotel's name : "); 
     String name = scan.nextLine(); 

     System.out.println(name); 
    } 

    public static void main(){   
     Main m0 = new Main(); 
     Window w = new Window(m0); 
    } 
} 

問題は、お時間をメインclass.Thanksに存在する3つの最後methods.These方法で発生!!

+0

まず、IDE(Netbeans、Eclipse、IntelliJ)は「実行中止」と言っていますか?何も起こらず、すべてがうまくいっているので、リターン0で終了しますか? – Shiki

+0

BlueJ.Itで作業していますが、最初のScanner.nextLine()でaddHotel()を呼び出すと実行が停止します。そこには入力をする予定ですが、terminal.Alsoには書き込めませんその他の方法。 –

答えて

1

GUIが正常に動作している:

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class Window extends JFrame implements ActionListener { 

    JButton b1 = new JButton("Load from file"); 
    JButton b2 = new JButton("Save to file"); 
    JButton b3 = new JButton("Add hotel and resrvations"); 
    JButton b4 = new JButton("Search hotel by id"); 
    JButton b5 = new JButton("Search reservation by name"); 

    Main m0 ; 

    public Window(Main main0) { 

     super("Management");//Name 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     b1.addActionListener(this); 
     b2.addActionListener(this); 
     b3.addActionListener(this); 
     b4.addActionListener(this); 
     b5.addActionListener(this); 

     FlowLayout flow = new FlowLayout(); 
     setLayout(flow); 

     add(b1); 
     add(b2); 
     add(b3); 
     add(b4); 
     add(b5); 
     pack(); 

     setVisible(true); 

     m0 = main0; 
    } 

    @Override 
    public void actionPerformed(ActionEvent ae) { 

     Object source = ae.getSource(); 
     if(source == b1) { 
      m0.loadFile(); 
     }else if(source == b2) { 
      m0.saveFile(); 
     }else if(source == b3) { 
      m0.addHotel(); 
     }else if(source == b4) { 
      m0.searchById(); 
     }else if(source == b5) { 
      m0.searchByName(); 
     } 
    } 

    public static void main(String[] args) { 
     new Window(new Main()); 
    } 
} 

class Main { 

    public void loadFile() { 
     System.out.println("loadFile pressed"); 
    } 

    public void searchByName() { 
     System.out.println("searchByName pressed"); 
    } 

    public void searchById() { 
     System.out.println("searchById() pressed"); 
    } 

    public void addHotel() { 
     System.out.println("addHotel pressed"); 
    } 

    public void saveFile() { 
     System.out.println("saveFile pressed"); 
    } 
} 

だから、問題が掲載されていなかったMainでなければなりません。

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Scanner; 
import javax.swing.JButton; 
import javax.swing.JFrame; 


public class Main{ 

    public void userInput(){ 
     Scanner scan = new Scanner(System.in); 

     System.out.println("Give hotel's name : "); 
     String name = scan.nextLine(); 

     System.out.println(name); 
    } 

    public static void main(String[] args){ //added String[] args 
     Main m0 = new Main(); 
     Window w = new Window(m0); 
    } 
} 

class Window extends JFrame implements ActionListener { 

    JButton b1 = new JButton("Get input"); 
    Main m0 = new Main(); 

    public Window(Main main0) { 
     super("Management"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     b1.addActionListener(this); 

     FlowLayout flow = new FlowLayout(); 
     setLayout(flow); 
     add(b1); 

     pack(); 

     setVisible(true); 

     m0 = main0; 
    } 

    @Override 
    public void actionPerformed(ActionEvent ae) { 
     Object source = ae.getSource(); 
     if(source == b1) { 
      m0.userInput(); 
     } 
    } 
} 

期待通りの出力がコンソールに表示されます:

はホテルのを与える は常にMCVEも正常に動作します投稿mcve

編集 を掲示考えます名前:
The Crown Hotel
The Crown Hotel

+0

どこに新しいコードを投稿できますか?(初めての投稿です) –

+0

あなたは既にコードを投稿しています。 'Main'の最小バージョンを編集して追加してください。 – c0der

+0

ちょうど投稿しました。 –

関連する問題