2016-05-17 38 views
0

對於我的化學課,我的老師告訴我,我可以通過製作某種化學相關課程來獲得額外的學分。我認爲這是一個好主意,因爲畢竟我在計算機科學專業。這是我的代碼到目前爲止,但我不能讓它顯示我想要的字符串,即使我按Enter鍵。任何幫助都會很棒。謝謝!JTextFields和我的學校項目

import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 
import javax.swing.*; 

    public class window extends JPanel implements KeyListener { 

     private static final long serialVersionUID = 1L; 
     private JTextField textBox; 
     private String textInput; 

     public window() { 
     textInput = ""; 
     textBox = new JTextField("Enter symbol here:", 30); 
     this.add(textBox); 
    } 

    public void paint(Graphics g) { 
     super.paint(g); 
     g.setColor(Color.CYAN); 
     g.setFont(new Font("", Font.BOLD, 20)); 
     g.drawString("Enter element symbol in text box above.", 110, 50); 
     g.drawString(textInput, 100, 100); 
    } 

    public void keyPressed(KeyEvent e) { 
     int code = e.getKeyCode(); 
     if (code == KeyEvent.VK_ENTER) { 
      textInput = textBox.getText(); 
     } 
     repaint(); 
    } 

    public void keyReleased(KeyEvent e) { 

    } 

    public void keyTyped(KeyEvent e) { 

    } 
} 



import java.awt.Color; 
import javax.swing.JFrame; 

    public class elementRunner { 

     public static void main(String[] args) { 
      window panel = new window(); 
     JFrame frame = new JFrame("Element project ~ By: Harsh Patel"); 
     frame.setBounds(100, 100, 600, 600); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setResizable(false); 
     panel.setBackground(Color.RED); 
     frame.setVisible(true); 
     frame.addKeyListener(panel); 
     frame.add(panel); 
    } 
} 
+1

我們在這裏不是做你的功課,告訴我們什麼是錯的。你有debbuged?你已經嘗試了什麼? – UDKOX

+0

你忘了'setContentPane'的方式。大聲笑,只是看到了「添加」,沒關係。從來沒有這樣做過。 – UDKOX

回答

0

問題是你的聽衆設置爲JPanel,如果你把它設置爲它工作的JTextField。我附上下面的代碼,但是,也許JLabels會有所幫助。我的意思是,它更容易,更結構化等,但你將不得不學習佈局如何工作。無論如何,這是它對我來說如何:

ElementRunner.java(大寫元素)。

public class ElementRunner { 

    public static void main(String[] args) { 
     MyWindow panel = new MyWindow(); 
     panel.setBackground(Color.RED); 

     JFrame frame = new JFrame("Element project ~ By: Harsh Patel"); 
     frame.setBounds(100, 100, 600, 600); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setResizable(false); 
     frame.add(panel); 
     frame.setVisible(true); 

    } 
} 

MyWindow.java(窗口是太普通了,這樣,我們知道這是你的,大寫的像元)

public class MyWindow extends JPanel implements KeyListener { 

    private static final long serialVersionUID = 1L; 
    private JTextField textBox; 
    private String textInput; 

    public MyWindow() { 
     textInput = ""; 
     textBox = new JTextField("Enter symbol here:", 30); 
     textBox.addKeyListener(this); // This line adds the listener to the TextField 
     this.add(textBox); 
    } 

    public void paint(Graphics g) { 
     super.paint(g); 
     g.setColor(Color.CYAN); 
     g.drawString("Enter element symbol in text box above.", 110, 50); 
     g.drawString(textInput, 100, 100); 
    } 

    public void keyPressed(KeyEvent e) { 
     int code = e.getKeyCode(); 
     if (code == KeyEvent.VK_ENTER) { 
      textInput = textBox.getText(); 
     } 
     repaint(); 
    } 

    public void keyReleased(KeyEvent e) { } 

    public void keyTyped(KeyEvent e) { } 
} 
+0

感謝您的反饋,幫助了很多! – Harsh