2016-05-17 36 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