Witam, przy próbie odczytu z inputa wyrzuca mi masę wyjątków, kombinowałem wczoraj sporo czasu, ale już nie mam siły, zwracam się do was z prośbą o pomoc :).
Pierwsza klasa:
import java.awt.EventQueue;
public class root {
public static void main(String[] args){
EventQueue.invokeLater(new Runnable(){
@Override
public void run(){
new ActionFrame();
}
});
}
}
Druga klasa:
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.*;
import javax.swing.*;
public class ActionFrame extends JFrame {
public ActionFrame(){
super("Test akcji buttonów!");
setSize(200,100);
JPanel buttonPanel = new ButtonPanel();
add(buttonPanel);
setLayout(new GridLayout(1,1));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
}
Trzecia klasa:
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.text.*;
import javax.swing.*;
public class ButtonPanel extends JPanel implements ActionListener {
public static final int HEIGHT = 100;
public static final int WIDTH = 300;
private JButton greenButton;
private JButton blueButton;
private JButton redButton;
public JTextField nameField;
public ButtonPanel(){
JTextField nameField = new JTextField();
greenButton = new JButton("MessageBox");
blueButton = new JButton("Blue");
redButton = new JButton("Red");
JLabel label1 = new JLabel("Hello everybody");
greenButton.addActionListener(this);
blueButton.addActionListener(this);
redButton.addActionListener(this);
setLayout(new GridLayout(3,4));
setPreferredSize(new Dimension(WIDTH,HEIGHT));
add(nameField);
add(greenButton);
add(blueButton);
add(redButton);
add(label1);
}
@Override
public void actionPerformed(ActionEvent e){
Object source = e.getSource();
if(source == greenButton){
String text = nameField.getText();
JOptionPane.showMessageDialog(null,text);
}
else if(source == blueButton)
setBackground(Color.BLUE);
else if(source == redButton)
setBackground(Color.RED);
}
}