Java Swing 将 JTextField 值移动到第二个按钮
Java Swing move JTextField values into second button
也许这已经被问过一次了,但我有点卡住了,无法自己找到解决方案。
我使用文本字段从第一个按钮获取文本。现在我需要将此文本放入第二个按钮或文本文件中。
下面的代码,我知道这个会出错。
System.out.println("Author's name: " + newauthor());
System.out.println("Book name: " + newbook());
import java.awt.GridLayout;
import java.awt.event.*;
import java.io.FileNotFoundException;
import javax.swing.*;
public class library extends JFrame
{
private JPanel pnl;
public library() throws FileNotFoundException {
pnl = (JPanel) getContentPane();
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(null);
JButton addbutton = new JButton("Add new book");
addbutton.setBounds(75, 30, 150, 30);
addbutton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
JTextField authorfield = new JTextField(15);
JTextField bookField = new JTextField(15);
JPanel mypanel = new JPanel(new GridLayout(0, 1));
mypanel.add(new JLabel("Type Author's Name and Book name:"));
mypanel.add(new JLabel("Author's Name:"));
mypanel.add(authorfield);
mypanel.add(new JLabel("Book name:"));
mypanel.add(bookField);
int result = JOptionPane.showConfirmDialog(null, mypanel,
"Add a new book", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION)
{
String newauthor = authorfield.getText();
String newbook = bookField.getText();
if (!newauthor.isEmpty() && !newbook.isEmpty())
{
JOptionPane.showMessageDialog(pnl, "Book "+bookField.getText()+"\nAuthor "+authorfield.getText()+"\nSuccessfully added to the list.",
"Book was added.", JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(pnl, "Both must be filled!",
"Error", JOptionPane.ERROR_MESSAGE);
}
}
}
});
panel.add(addbutton);
JButton listbutton = new JButton("List");
listbutton.setBounds(75, 60, 150, 30);
panel.add(listbutton);
addbutton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Author's name: " + newauthor());
System.out.println("Book name: " + newbook());
}
});
JButton deletebutton = new JButton("Delete");
deletebutton.setBounds(75, 90, 150, 30);
panel.add(deletebutton);
setTitle("Library Menu");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) throws FileNotFoundException {
library ex = new library();
ex.setVisible(true);
}
}
您的代码有很多问题。
1.Both 应该在您的 class 内部声明,但在您的任何方法之外。
String newauthor = "";
String newbook = "";
现在处于if
状态
if (result == JOptionPane.OK_OPTION)
{
newauthor = authorfield.getText();
newbook = bookField.getText();
..............................
2.
JButton listbutton = new JButton("List");
listbutton.setBounds(75, 60, 150, 30);
panel.add(listbutton);
listbutton.addActionListener(new ActionListener()// its listbutton not addbutton
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Author's name: " + newauthor);
System.out.println("Book name: " + newbook);
}
});
newauthor
和newbook
都是变量。但不是方法。
也许这已经被问过一次了,但我有点卡住了,无法自己找到解决方案。 我使用文本字段从第一个按钮获取文本。现在我需要将此文本放入第二个按钮或文本文件中。
下面的代码,我知道这个会出错。
System.out.println("Author's name: " + newauthor());
System.out.println("Book name: " + newbook());
import java.awt.GridLayout;
import java.awt.event.*;
import java.io.FileNotFoundException;
import javax.swing.*;
public class library extends JFrame
{
private JPanel pnl;
public library() throws FileNotFoundException {
pnl = (JPanel) getContentPane();
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(null);
JButton addbutton = new JButton("Add new book");
addbutton.setBounds(75, 30, 150, 30);
addbutton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
JTextField authorfield = new JTextField(15);
JTextField bookField = new JTextField(15);
JPanel mypanel = new JPanel(new GridLayout(0, 1));
mypanel.add(new JLabel("Type Author's Name and Book name:"));
mypanel.add(new JLabel("Author's Name:"));
mypanel.add(authorfield);
mypanel.add(new JLabel("Book name:"));
mypanel.add(bookField);
int result = JOptionPane.showConfirmDialog(null, mypanel,
"Add a new book", JOptionPane.OK_CANCEL_OPTION);
if (result == JOptionPane.OK_OPTION)
{
String newauthor = authorfield.getText();
String newbook = bookField.getText();
if (!newauthor.isEmpty() && !newbook.isEmpty())
{
JOptionPane.showMessageDialog(pnl, "Book "+bookField.getText()+"\nAuthor "+authorfield.getText()+"\nSuccessfully added to the list.",
"Book was added.", JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(pnl, "Both must be filled!",
"Error", JOptionPane.ERROR_MESSAGE);
}
}
}
});
panel.add(addbutton);
JButton listbutton = new JButton("List");
listbutton.setBounds(75, 60, 150, 30);
panel.add(listbutton);
addbutton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Author's name: " + newauthor());
System.out.println("Book name: " + newbook());
}
});
JButton deletebutton = new JButton("Delete");
deletebutton.setBounds(75, 90, 150, 30);
panel.add(deletebutton);
setTitle("Library Menu");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) throws FileNotFoundException {
library ex = new library();
ex.setVisible(true);
}
}
您的代码有很多问题。
1.Both 应该在您的 class 内部声明,但在您的任何方法之外。
String newauthor = "";
String newbook = "";
现在处于if
状态
if (result == JOptionPane.OK_OPTION)
{
newauthor = authorfield.getText();
newbook = bookField.getText();
..............................
2.
JButton listbutton = new JButton("List");
listbutton.setBounds(75, 60, 150, 30);
panel.add(listbutton);
listbutton.addActionListener(new ActionListener()// its listbutton not addbutton
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Author's name: " + newauthor);
System.out.println("Book name: " + newbook);
}
});
newauthor
和newbook
都是变量。但不是方法。