2016-05-17 3 views
0

Для моего класса химии мой учитель сказал мне, что я могу заработать дополнительный кредит, сделав какую-то программу, связанную с химией. Я думал, что это хорошая идея, потому что я все-таки в компьютерной науке А.П. Это мой код до сих пор, но я не могу получить его, чтобы отобразить строку, которую я хочу, даже после того, как я нажму клавишу ввода. Любая помощь будет большой. Благодаря!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

Мы не здесь, чтобы сделать свою домашнюю работу, скажите нам, что неправильно. Вы дебютировали? Что вы уже пробовали? – UDKOX

+0

Кстати, вы забыли 'setContentPane'. LOL, просто увидел «добавить», неважно. Тем не менее, это не так. – UDKOX

ответ

0

Проблема заключается вы настраиваете слушателя к JPanel, если вы установите его в JTextField он работает. Я прикладываю код ниже, однако, возможно, JLabels будет полезен. Я имею в виду, что это проще, более структурировано и т. Д. Но вам нужно будет узнать, как работают макеты. Во всяком случае, так оно и выглядит:

ElementRunner.java(uppercase Element).

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

Смежные вопросы