Создать текстовое поле и связать с кнопками - Java
Формулировка задачи:
Дана программа, надо добавить в нее текстовое поле, такое,что при вводе числа на кнопке выводилось это число
Первую часть я сделал, добавил текст, а вот как связать ее с кнопкой не пойму. Точнее надо что-то с count сделать.
package io;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*; // Eventhandling
public class MyCountingFrame extends JFrame {
/**
* Da JFrame das Serializable Interface implementiert, sollte diese UID
* definiert werden. Wir setzten sie der Einfachheit halber auf 1:
*/
private static final long serialVersionUID = 1L;
/** Variablendeklarationen von JButton aus dem Konstruktor verschoben */
private JButton button;
/** Zaehlrichtung: true = aufwaerts */
private boolean richtung = true;
/** Anzahl Klicks */
private int count = 0;
/** Konstruktor */
public MyCountingFrame() {
/*
* Fenster konfigurieren:
*/
// Frame-Erzeugung ueber Konstruktor von JFrame
super("My Counting Frame");
// Groesse des Frames
this.setBounds(100, 100, 350, 420);// первый две это точки на экране,где они окно будет выходить, вторые две это ширина и высота окна
// Schliesse das Fenster bei Klick auf das Kreuz
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Anlegen einer Menuzeile
JMenuBar menubar = new JMenuBar();
// Eintragen der Menuzeile in den Frame
this.setJMenuBar(menubar);
// Anlegen eines Eintrags in der Menuezeile
JMenu myMenu = new JMenu("Mein Menue");
// Eintragen des Menupunkts in die Menuezeile
menubar.add(myMenu);
// Menuunterpunkt "Reset" anlegen
JMenuItem resetItem = new JMenuItem("Reset");
// und in das Menu myMenu eintragen
myMenu.add(resetItem);
// Zugriff auf geerbten ContentPane
Container conPane = this.getContentPane();
// Anlegen eines Panelbereichs
JPanel panel = new JPanel();
// Eintragen des Panels in den Frame
conPane.add(panel);
/*JTextField text1 = new JTextField(20);
add(text1);*/
/*
* Inhalte des Panels definieren:
*/
// Erzeugen eines Buttons
button = new JButton("Click me");
// und Eintragen in das ContentPane
panel.add(button);
// RadioButtons anlegen, "aufwaerts" ist initial markiert
JRadioButton auf = new JRadioButton("aufwaerts", true);
JRadioButton ab = new JRadioButton("abwaerts");
// und zum Panel hinzufuegen
panel.add(auf);
panel.add(ab);
// Zusammenfassen der RadioButtons zu einer Gruppe
ButtonGroup group = new ButtonGroup();
group.add(auf);
group.add(ab);
//JTextField hinzufugen// [B]Создал поле для текста[/B]
JTextField text1 = new JTextField(20);////////////////////////////
panel.add(text1);
// Anzeigen des Frames
setVisible(true);
/*
* Definition und Anmelden der ActionListener:
*/
// Klicken auf die RadioButtons "auf" und "ab"
auf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// Setze Richtung = 'aufwaerts'
richtung = true;
}
});
ab.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// Setze Richtung = 'abwaerts'
richtung = false;
}
});
// Klicken auf button
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
buttonActionPerformed();
}
});
// Klicken auf das MenuItem "Reset"
resetItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
resetActionPerformed();
}
});
} // Ende des Konstruktors MyCountingFrame()
/*
* DEFINITION DER von den ActionListenern verwendeten METHODEN:
*/
/** Aktionen nach Klick auf Button */
private void buttonActionPerformed() {
if (richtung)
count++; // Aufwaerts zaehlen
else
count--; // Abwaerts zaehlen
button.setText("bis " + count + " gezaehlt");
}
/** Aktionen nach Klick auf Reset */
private void resetActionPerformed() {
button.setText("Click me");
count = 0;
richtung = true;
}
/**
* Main Methode: Erzeugen des Fensters
*/
public static void main(String args[]) {
new MyCountingFrame();
}
}
тема для Java GUI & JavaFX
Решение задачи: «Создать текстовое поле и связать с кнопками»
textual
Листинг программы
String displayLabel = text1.getText();