Hallo Com,
ich bin relativ neu im GUI Bereich.
Ich habe einen JFrame mit 2 Buttons. Klickt man auf den einen Button öffnet sich ein JDialog mit einem TextField, indem man seinen Namen eingeben soll.
Der zweite Button öffnet dann ein Label, dass das Eingegebene vom TextField widergeben soll.
Das ist mein Mainframe, wie gesagt mit den zwei Buttons die je einen ActionListener haben, in denen die Konstruktoren der JDialogs aufgerufen werden.
Code vom 1.JDialog (dem mit dem TextField)
Gibts eigentlich nicht viel zu sagen...
Und noch der Code von dem JDialog, dass das Eingegebene in einem Label widergeben soll.
Ok hier ist mein Problem. Schaut euch mal das Label an(Z21-22)... Wie soll ich das machen?! Also ich will in das Label das eingegebene vom JTextField rein schreiben.
Viele Grüße und danke für die Antworten!
ich bin relativ neu im GUI Bereich.
Ich habe einen JFrame mit 2 Buttons. Klickt man auf den einen Button öffnet sich ein JDialog mit einem TextField, indem man seinen Namen eingeben soll.
Der zweite Button öffnet dann ein Label, dass das Eingegebene vom TextField widergeben soll.
Java:
package Test;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainFrame {
public static void main(String[] args) {
Runnable StartGUI = new Runnable(){
@Override
public void run() {
final JFrame mainframe = new JFrame("Namen");
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainframe.setLayout(new BorderLayout());
JButton button1 = new JButton("Click me :)");
button1.setPreferredSize(new Dimension(50,50));
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
Input d = new Input(mainframe);
d.setVisible(true);
}
});
JButton button2 = new JButton("Anzeigen");
button2.setPreferredSize(new Dimension(50,50));
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Anzeigen a = new Anzeigen(mainframe);
a.setVisible(true);
}
});
mainframe.add(button1, BorderLayout.CENTER);
mainframe.add(button2, BorderLayout.SOUTH);
mainframe.pack();
mainframe.setLocationRelativeTo(null);
mainframe.setVisible(true);
}
};
EventQueue.invokeLater(StartGUI);
}
}
Das ist mein Mainframe, wie gesagt mit den zwei Buttons die je einen ActionListener haben, in denen die Konstruktoren der JDialogs aufgerufen werden.
Code vom 1.JDialog (dem mit dem TextField)
Java:
package Test;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Input extends JDialog{
private JTextField input;
public Input(JFrame owner){
super(owner);
setTitle("JDialog");
setModal(true);
JLabel label = new JLabel("Bitte gebt euren Namen ein!");
input = new JTextField();
input.setPreferredSize(new Dimension(200,20));
JButton button = new JButton("Ok");
button.setPreferredSize(new Dimension(50,50));
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
dispose();
}
});
JPanel container = new JPanel();
container.setLayout(new BorderLayout(10,10));
container.add(label, BorderLayout.NORTH);
container.add(input, BorderLayout.CENTER);
container.add(button, BorderLayout.SOUTH);
setLayout(new FlowLayout());
add(container);
pack();
setLocationRelativeTo(owner);
}
public String getName(){
return input.getText();
}
}
Gibts eigentlich nicht viel zu sagen...
Und noch der Code von dem JDialog, dass das Eingegebene in einem Label widergeben soll.
Java:
package Test;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Anzeigen extends JDialog {
public Anzeigen(JFrame owner){
super(owner);
setTitle("Dein Name");
setModal(true);
Input d = new Input(owner);// wie soll ich das hier machen?!
JLabel label = new JLabel("Eingegebener Name " + d.getName());
label.setPreferredSize(new Dimension(200,200));
label.setLayout(new BorderLayout());
JButton button = new JButton("Ok");
button.setPreferredSize(new Dimension(50,50));
button.setLayout(new BorderLayout());
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
add(label, BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);
pack();
setLocationRelativeTo(owner);
}
}
Viele Grüße und danke für die Antworten!
Zuletzt bearbeitet von einem Moderator: