├── README.md └── Exercises ├── src ├── App.java └── Exercises │ ├── Exercise2.txt │ └── Exercise2.java ├── .vscode └── settings.json └── README.md /README.md: -------------------------------------------------------------------------------- 1 | ## Event Handling with Java GUI 2 | -------------------------------------------------------------------------------- /Exercises/src/App.java: -------------------------------------------------------------------------------- 1 | import Exercises.Exercise2; 2 | 3 | public class App { 4 | public static void main(String[] args) throws Exception { 5 | new Exercise2(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Exercises/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "java.project.sourcePaths": ["src"], 3 | "java.project.outputPath": "bin", 4 | "java.project.referencedLibraries": [ 5 | "lib/**/*.jar" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /Exercises/src/Exercises/Exercise2.txt: -------------------------------------------------------------------------------- 1 | Crie uma aplicação que tenha um campo de texto. Registre um evento de teclado para o campo de texto e exiba o que o usuário digitou em tempo real em um rótulo ou em outro campo de texto na mesma janela. 2 | -------------------------------------------------------------------------------- /Exercises/README.md: -------------------------------------------------------------------------------- 1 | ## Getting Started 2 | 3 | Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. 4 | 5 | ## Folder Structure 6 | 7 | The workspace contains two folders by default, where: 8 | 9 | - `src`: the folder to maintain sources 10 | - `lib`: the folder to maintain dependencies 11 | 12 | Meanwhile, the compiled output files will be generated in the `bin` folder by default. 13 | 14 | > If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. 15 | 16 | ## Dependency Management 17 | 18 | The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). 19 | -------------------------------------------------------------------------------- /Exercises/src/Exercises/Exercise2.java: -------------------------------------------------------------------------------- 1 | package Exercises; 2 | 3 | import javax.swing.JFrame; 4 | import javax.swing.JLabel; 5 | import javax.swing.JPanel; 6 | import javax.swing.JTextField; 7 | import java.awt.event.KeyEvent; 8 | import java.awt.event.KeyListener; 9 | import java.util.logging.Handler; 10 | import java.awt.*; 11 | 12 | public class Exercise2 extends JFrame { 13 | // atributes 14 | private JTextField mainTextBox; 15 | private JTextField typedLetter; 16 | private JTextField textShown; 17 | private JLabel letter; 18 | private JLabel text; 19 | 20 | public Exercise2() { 21 | super("Exercise 2"); 22 | this.setDefaultCloseOperation(2); 23 | this.setBounds(100, 100, 300, 150); 24 | 25 | // mainPanel - gridLayout(3 rows and 3 cols) 26 | JPanel mainPanel = new JPanel(new GridLayout(5, 1)); 27 | this.add(mainPanel); 28 | 29 | // create components 30 | mainPanel.add(new JLabel("Type here: ")); 31 | mainTextBox = new JTextField(); 32 | mainPanel.add(mainTextBox); 33 | 34 | mainPanel.add(new JLabel("Typed Letter: ")); 35 | letter = new JLabel(); 36 | typedLetter = new JTextField(); 37 | mainPanel.add(typedLetter); 38 | mainPanel.add(letter); 39 | 40 | mainPanel.add(new JLabel("Text Shown: ")); 41 | text = new JLabel(); 42 | textShown = new JTextField(); 43 | mainPanel.add(textShown); 44 | mainPanel.add(text); 45 | 46 | // set frame 47 | this.setVisible(true); 48 | 49 | // event handling 50 | Handler event = new Handler(); 51 | mainTextBox.addKeyListener(event); 52 | } 53 | 54 | public class Handler implements KeyListener { 55 | @Override 56 | public void keyTyped(KeyEvent e) { 57 | char keyPressed = e.getKeyChar(); // I got the value of the key pressed 58 | letter.setText("" + keyPressed); 59 | text.setText(mainTextBox.getText()); 60 | } 61 | @Override 62 | public void keyPressed(KeyEvent e) {} 63 | 64 | @Override 65 | public void keyReleased(KeyEvent e) {} 66 | } 67 | } 68 | --------------------------------------------------------------------------------