Java 将值从jtext传递到另一帧
我得写一个出纳程序。假设,如果我有一个包含2个JTextFields的JFrame,则添加项目种类和价格。我有一个JButton,当我按下JButton时,如果我想让用户添加的条目与新JFrame中名为Sell的JButton相似,那么就创建一个JButton,JButton将把price和item kind的值传递给JTable。有没有办法做到这一点 从数据库中获取项目的代码,但结果是JTable,但我不知道创建JButton的代码Java 将值从jtext传递到另一帧,java,swing,jdbc,jtable,jbutton,Java,Swing,Jdbc,Jtable,Jbutton,我得写一个出纳程序。假设,如果我有一个包含2个JTextFields的JFrame,则添加项目种类和价格。我有一个JButton,当我按下JButton时,如果我想让用户添加的条目与新JFrame中名为Sell的JButton相似,那么就创建一个JButton,JButton将把price和item kind的值传递给JTable。有没有办法做到这一点 从数据库中获取项目的代码,但结果是JTable,但我不知道创建JButton的代码 这个问题的要求还不清楚,不过如果你能对它有更多的了解,那么我
这个问题的要求还不清楚,不过如果你能对它有更多的了解,那么我们中的许多人就能在这个话题上帮助你。借助于,以防万一英语不是你喜欢的语言 如果我正确理解了这个问题,您需要在两个字段中输入两个值,ITEM和PRICE。现在,单击JButton,您希望将这些项传递给JTable。如果是这样的话,下面是一个供您帮助的小程序:
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class JTableExample {
private JFrame frame;
private JTextField itemTField;
private JFormattedTextField priceFTField;
private NumberFormat priceFormat;
private JButton submitButton;
private Vector<String> columnNames = new Vector<String>();
private JDialog sellingDialog;
private JTable table;
private DefaultTableModel model;
private ActionListener buttonAction = new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if (!sellingDialog.isShowing()) {
model.setRowCount(0);
sellingDialog.setVisible(true);
}
Vector<Object> rowData = new Vector<Object>(2);
String item = itemTField.getText().trim();
double price = Double.parseDouble(
priceFTField.getText().trim());
rowData.add(item);
rowData.add(new Double(price));
model.addRow(rowData);
}
};
public JTableExample() {
columnNames.add("Item");
columnNames.add("Price");
}
private void displayGUI() {
frame = new JFrame("Swing Worker Example");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel contentPane = new JPanel(new GridLayout(2, 1, 5, 5));
JPanel headerPanel = new JPanel();
itemTField = new JTextField(10);
priceFormat = NumberFormat.getInstance();
priceFormat.setMaximumFractionDigits(2);
priceFTField = new JFormattedTextField(priceFormat);
priceFTField.setColumns(10);
headerPanel.add(itemTField);
headerPanel.add(priceFTField);
JPanel footerPanel = new JPanel();
submitButton = new JButton("SUBMIT");
submitButton.addActionListener(buttonAction);
footerPanel.add(submitButton);
contentPane.add(headerPanel);
contentPane.add(footerPanel);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
createDialog();
}
private void createDialog() {
sellingDialog = new JDialog(frame, "Sell Items: ", false);
JPanel contentPane = new JPanel(new BorderLayout(5, 5));
model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);
table = new JTable(model);
table.setPreferredScrollableViewportSize(
new Dimension(200, 200));
table.setFillsViewportHeight(true);
JScrollPane itemScroller = new JScrollPane();
itemScroller.setViewportView(table);
contentPane.add(itemScroller);
sellingDialog.setContentPane(contentPane);
sellingDialog.pack();
}
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
new JTableExample().displayGUI();
}
};
EventQueue.invokeLater(runnable);
}
}
不过,在一个单独的应用程序中,请考虑浏览已经发表在评论中的链接。totalpay=价格+totalpay++行数;应该是SQL server的作业,此值应该从语句返回您应该在此论坛中使用图形正确的英语而不是SMS语言来回答您的问题。请参阅catch Exception e{//ignore}更改catch Exception e{..形式的代码以捕获异常e{e.printStackTrace;//信息量很大!。OP似乎已经放弃了这一点,所以投票决定关闭。
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class JTableExample {
private JFrame frame;
private JTextField itemTField;
private JFormattedTextField priceFTField;
private NumberFormat priceFormat;
private JButton submitButton;
private Vector<String> columnNames = new Vector<String>();
private JDialog sellingDialog;
private JTable table;
private DefaultTableModel model;
private ActionListener buttonAction = new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if (!sellingDialog.isShowing()) {
model.setRowCount(0);
sellingDialog.setVisible(true);
}
Vector<Object> rowData = new Vector<Object>(2);
String item = itemTField.getText().trim();
double price = Double.parseDouble(
priceFTField.getText().trim());
rowData.add(item);
rowData.add(new Double(price));
model.addRow(rowData);
}
};
public JTableExample() {
columnNames.add("Item");
columnNames.add("Price");
}
private void displayGUI() {
frame = new JFrame("Swing Worker Example");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel contentPane = new JPanel(new GridLayout(2, 1, 5, 5));
JPanel headerPanel = new JPanel();
itemTField = new JTextField(10);
priceFormat = NumberFormat.getInstance();
priceFormat.setMaximumFractionDigits(2);
priceFTField = new JFormattedTextField(priceFormat);
priceFTField.setColumns(10);
headerPanel.add(itemTField);
headerPanel.add(priceFTField);
JPanel footerPanel = new JPanel();
submitButton = new JButton("SUBMIT");
submitButton.addActionListener(buttonAction);
footerPanel.add(submitButton);
contentPane.add(headerPanel);
contentPane.add(footerPanel);
frame.setContentPane(contentPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
createDialog();
}
private void createDialog() {
sellingDialog = new JDialog(frame, "Sell Items: ", false);
JPanel contentPane = new JPanel(new BorderLayout(5, 5));
model = new DefaultTableModel();
model.setColumnIdentifiers(columnNames);
table = new JTable(model);
table.setPreferredScrollableViewportSize(
new Dimension(200, 200));
table.setFillsViewportHeight(true);
JScrollPane itemScroller = new JScrollPane();
itemScroller.setViewportView(table);
contentPane.add(itemScroller);
sellingDialog.setContentPane(contentPane);
sellingDialog.pack();
}
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
new JTableExample().displayGUI();
}
};
EventQueue.invokeLater(runnable);
}
}