2014-05-02 30 views
0

繼承人我的代碼人。我已經回顧了這一點,並且不確定爲什麼一旦JButton被點擊,它應該從JTextField接收輸入,它不會輸出JTextArea中的Celcius溫度。當在Java中單擊按鈕時文本區域未打印輸入

繼承人的代碼...

import javax.swing.BorderFactory; 
import javax.swing.BoxLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JLabel; 
import javax.swing.SwingConstants; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class C_to_F extends JFrame { 

    JPanel layout = new JPanel(); 
    JLabel title = new JLabel("<html>Welcome to Farenheit to Celcius!</html>"); 
    JLabel inputtxt = new JLabel("<html>Input Farenheit:</html>"); 
    static JTextField input = new JTextField (null); 
    static JTextArea answer = new JTextArea(); 
    static JButton submit = new JButton("Submit"); 

    public static void main(String[] args) { 
     JFrame frame = new C_to_F(); 
     frame.show(); 
    }  

    public static void submit() { 
     submit.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       input(); 
      } 
     }); 
    } 

    public static void input() { 
     String TextBox = input.getText(); 
     float farenheit = Float.parseFloat(TextBox); 
     for(int i=0;i<=0;i++) { 
      double celcius = (farenheit - 32) * 5/9; 
      String celciustxt = ("Celcius = " + celcius); 
      answer.setText(String.valueOf(celciustxt));    
     } 
    } 

    public C_to_F() { 
     setTitle("Farenheit to Celcius"); 
     setSize(300,300); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setResizable(true); 
     layout.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); 
     layout.setLayout(new GridLayout(8,1));   

     inputtxt.setHorizontalTextPosition(SwingConstants.CENTER); 
     title.setHorizontalTextPosition(SwingConstants.CENTER); 

     add(layout); 

     layout.add(title); 
     layout.add(inputtxt); 
     layout.add(input); 
     layout.add(submit); 
     layout.add(answer); 

     setVisible(true); 
    }  
} 

謝謝你們!

回答

1

您還沒有叫submit()你的監聽器添加到按鈕

1

你永遠不會調用它與submit按鈕

0

您需要在按鈕註冊監聽器,如註冊ActionListener方法submit

submit.addActionListener(...); 
layout.add(submit); 
0

我修改了一下你的代碼。看看這個工程

public class C_to_F extends JFrame{ 
JPanel layout = new JPanel(); 
JLabel title = new JLabel("<html>Welcome to Farenheit to Celcius!</html>"); 
JLabel inputtxt = new JLabel("<html>Input Farenheit:</html>"); 
static JTextField input = new JTextField (null); 
static JTextArea answer = new JTextArea(); 
static JButton submit = new JButton("Submit"); 



public static void main(String[] args) { 
    JFrame frame = new C_to_F(); 
    frame.pack(); 
    frame.setVisible(true); 
} 


public static void input() { 
    String TextBox = input.getText(); 
    float farenheit = Float.parseFloat(TextBox); 
    for(int i=0;i<=0;i++) { 
     double celcius = (farenheit - 32) * 5/9; 
     String celciustxt = ("Celcius = " + celcius); 
     answer.setText(String.valueOf(celciustxt)); 


    } 
} 

public C_to_F() { 
    setTitle("Farenheit to Celcius"); 
    setSize(300,300); 
    setLocationRelativeTo(null); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    setResizable(true); 
    layout.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); 
    layout.setLayout(new GridLayout(8,1)); 


    inputtxt.setHorizontalTextPosition(SwingConstants.CENTER); 
    title.setHorizontalTextPosition(SwingConstants.CENTER); 

    submit.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      input(); 
      SwingUtilities.updateComponentTreeUI(layout); 
     } 
    }); 

    add(layout); 

    layout.add(title); 
    layout.add(inputtxt); 
    layout.add(input); 
    layout.add(submit); 
    layout.add(answer); 

    setVisible(true); 


} 
} 
相關問題