使JOptionPane打印多个数据集

时间:2015-06-13 23:51:31

标签: java

有人可以向我解释如何在一个对话框中打印所有三行客户数据,如下面的屏幕截图所示?现在它一次只打印一行。

joptionprint

String custNum = JOptionPane.showInputDialog("Enter cust numb:");
      while (!custNum.equalsIgnoreCase("quit")) {
         String custName = JOptionPane.showInputDialog("Enter cust name:");
         do {
            try {
               kilowattUsed = Double.parseDouble(JOptionPane.showInputDialog("Enter kilowatt(s) used:"));
            }
            catch (NumberFormatException e) {
               kilowattUsed = minKilowatt - 1;
            }
            if (kilowattUsed < minKilowatt || kilowattUsed >= maxKilowatt) {
               JOptionPane.showMessageDialog(null,"Please enter a valid number");
            }
         } while (kilowattUsed <= minKilowatt || kilowattUsed >= maxKilowatt);


         if (kilowattUsed < lowRateKilowattMin) {
            amtOwed = kilowattUsed * highRate;
         }
         else {
            amtOwed = kilowattUsed * lowRate;
         }

         totalOwed += amtOwed;
         numCustomers++;
         JOptionPane.showMessageDialog(null,custNum + " | " + custName + " | " 
            + String.format("%.1f",kilowattUsed) + " | " + "$" + String.format("%.2f",amtOwed));

         custNum = JOptionPane.showInputDialog("Enter cust number:");
      }

2 个答案:

答案 0 :(得分:1)

你在java中为新行使用的字符是换行符\n,所以如果你在你的行之间的最后一个字符串中添加它,那么它们就会出现在这些行中:

这是一个演示它的简单示例:

JOptionPane.showMessageDialog(null, "line1 \nline2 \nline3");

输出结果如下:

enter image description here

我希望这会有所帮助:)

答案 1 :(得分:1)

需要注意的一个关键理解是,JOptionPane的show方法的第二个参数可以是任何Swing组件,包括JTable,它是显示表格数据的最佳组件。所以我建议你,

  • 使用您的数据填充DefaultTableModel
  • 使用该模型创建JTable
  • 将JTable放在JScrollPane
  • 将该JScrollPane作为JOptionPane.showMessageDialog(...)
  • 的第二个参数传递