有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使JOptionPane打印多组数据

有人能告诉我如何在一个对话框中打印所有三行客户数据,如下面的屏幕截图所示吗?现在它一次只打印一行

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) 个答案

  1. # 1 楼答案

    java中用于新行的字符是新行字符\n,因此如果在行间的最后一个字符串中添加该字符,那么它们将出现在以下几行:

    下面是一个简单的例子来演示:

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

    其结果将是:

    enter image description here

    我希望这能有所帮助:)

  2. # 2 楼答案

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

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