jp

授权协议 MIT License
开发语言 C/C++
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 甄阿苏
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

jp

Dead simple terminal plots from JSON (or CSV) data. Bar charts, line charts, scatter plots, histograms and heatmaps are supported.

Get it

go get -u github.com/sgreben/jp/cmd/jp

Or download the binary from the releases page.

# Linux
curl -LO https://github.com/sgreben/jp/releases/download/1.1.12/jp_1.1.12_linux_x86_64.zip
unzip jp_1.1.12_linux_x86_64.zip

# OS X
curl -LO https://github.com/sgreben/jp/releases/download/1.1.12/jp_1.1.12_osx_x86_64.zip
unzip jp_1.1.12_osx_x86_64.zip

# Windows
curl -LO https://github.com/sgreben/jp/releases/download/1.1.12/jp_1.1.12_windows_x86_64.zip
unzip jp_1.1.12_windows_x86_64.zip

Use it

jp reads JSON (or CSV) on stdin and prints plots to stdout.

Usage of jp:
  -type value
    	Plot type. One of [line bar scatter hist hist2d] (default line)
  -x string
    	x values (JSONPath expression)
  -y string
    	y values (JSONPath expression)
  -xy string
    	x,y value pairs (JSONPath expression). Overrides -x and -y if given.
  -bins uint
        Number of histogram bins (default 0 (auto))
  -input value
        Input type. One of [json csv] (default json)
  -height int
    	Plot height (default 0 (auto))
  -width int
    	Plot width (default 0 (auto))
  -canvas value
    	Canvas type. One of [full full-escape full-bw full-wb quarter braille auto] (default auto)

Examples

Bar chart

Separate X and Y values

$ < examples/tcp-time.json jp -x ..Label -y ..Count -type bar

         69
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████      21
    █████████████ █████████████       7             2             1
    █████████████ █████████████ ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁

     46.85267ms    48.38578ms    49.91889ms     51.452ms     52.98511ms

XY pairs

$ < examples/tcp-time.json jp -xy "..[Label,Count]" -type bar

         69
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████      21
    █████████████ █████████████       7             2             1
    █████████████ █████████████ ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁

     46.85267ms    48.38578ms    49.91889ms     51.452ms     52.98511ms

Y values only (X=index)

$ < examples/tcp-time.json jp -y ..Count -type bar

         69
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████
    █████████████      21
    █████████████ █████████████       7             2             1
    █████████████ █████████████ ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁

          0             1             2             3             4

Array data

$ echo '[[-3, 5], [-2, 0], [-1, 0.1], [0, 1], [1, 2], [2, 3]]' | jp -xy '[*][0, 1]' -type bar

         5
    ███████████
    ███████████
    ███████████                                                      3
    ███████████                                                 ▄▄▄▄▄▄▄▄▄▄▄
    ███████████                                          2      ███████████
    ███████████                              1      ███████████ ███████████
    ███████████                 0.1     ▄▄▄▄▄▄▄▄▄▄▄ ███████████ ███████████
    ███████████      0      ▁▁▁▁▁▁▁▁▁▁▁ ███████████ ███████████ ███████████

        -3          -2          -1           0           1           2

Line chart

Array data, separate X and Y values

$ jq -n '[range(200)/20 | [., sin]]' | jp -x '[*][0]' -y '[*][1]'
  1.059955│         ▄▄▄▖                                       ▗▄▄▄▖
          │       ▄▀▘  ▝▜▖                                   ▗▞▘   ▝▚
          │      ▟       ▝▄                                 ▗▀       ▜
          │     ▟         ▝▄                               ▗▀         ▜
          │    ▐           ▝▖                             ▗▞           ▚▖
          │   ▗▘            ▝▖                            ▞             ▚
          │  ▗▘              ▚                           ▞               ▌
          │  ▌                ▌                         ▗▘               ▝▖
          │ ▞                 ▝▖                        ▌                 ▚
          │▗▘                  ▚                       ▞                   ▌
          │▌                    ▌                     ▗▘                   ▝▖
          │                     ▝▖                   ▗▘                     ▐
          │                      ▐                   ▞                       ▚
          │                       ▚                 ▐                        ▝▖
          │                       ▝▖               ▗▘                         ▐
          │                        ▐               ▞                           ▚
          │                         ▀▖            ▐
          │                          ▚           ▄▘
          │                           ▙         ▗▘
          │                            ▚       ▄▘
          │                             ▚▄   ▗▞▘
          │                              ▝▀▀▀▘
 -1.059955└─────────────────────────────────────────────────────────────────────
          0                                                                 9.95

Array data, XY pairs

$ jq -n '[range(200)/20 | [., sin]]' | jp -xy '[*][0, 1]'
  1.059955│         ▄▄▄▖                                       ▗▄▄▄▖
          │       ▄▀▘  ▝▜▖                                   ▗▞▘   ▝▚
          │      ▟       ▝▄                                 ▗▀       ▜
          │     ▟         ▝▄                               ▗▀         ▜
          │    ▐           ▝▖                             ▗▞           ▚▖
          │   ▗▘            ▝▖                            ▞             ▚
          │  ▗▘              ▚                           ▞               ▌
          │  ▌                ▌                         ▗▘               ▝▖
          │ ▞                 ▝▖                        ▌                 ▚
          │▗▘                  ▚                       ▞                   ▌
          │▌                    ▌                     ▗▘                   ▝▖
          │                     ▝▖                   ▗▘                     ▐
          │                      ▐                   ▞                       ▚
          │                       ▚                 ▐                        ▝▖
          │                       ▝▖               ▗▘                         ▐
          │                        ▐               ▞                           ▚
          │                         ▀▖            ▐
          │                          ▚           ▄▘
          │                           ▙         ▗▘
          │                            ▚       ▄▘
          │                             ▚▄   ▗▞▘
          │                              ▝▀▀▀▘
 -1.059955└─────────────────────────────────────────────────────────────────────
          0                                                                 9.95

Y values only (X=index)

$ < examples/tcp-time.json jp -y ..Duration
 5.726165e+07│
             │
             │
             │
             │ ▗
             │ ▟
             │ █
             │▐▝▖
             │▐ ▌                                   ▌
             │▐ ▌                                   ▌
             │▌ ▌                                  ▐▚
             │▌ ▌                ▗       ▗         ▐▐    ▌
             │▘ ▌              ▖ ▐      ▞▀▖        ▐▐    ▌
             │  ▚   ▐▚  ▗▀▖   ▗▚ ▌▌    ▗▘ ▌ ▖▗▀▌   ▌▐    █
             │  ▐  ▛▌ ▚▖▞ ▚▐▖ ▞▐ ▌▌ ▗  ▐  ▐▟▐▞ ▚ ▗ ▌▝▖  ▐▐                      ▐
             │  ▐ ▐    ▝  ▝▌▝▀ ▝▟ ▚▗▜  ▞     ▘ ▐▖█▗▘ ▌  ▐▐    ▗  ▄▖     ▄▖      ▌▌
             │  ▝▚▐        ▘    ▘ ▐▘▝▖▄▌        ▝▝▟  ▀▀▚▟ ▌ ▖▞▘▌▐ ▚ ▗▄ ▐ ▚▄▖ ▄ ▄▘▌▞▄▄▀▚   ▄ ▄▗▞▖▞▄▄▚
             │   ▝▌                  ▛            ▌     ▝ ▙▞▝  ▝▘ ▝▚▘ ▀▘   ▝▀ ▀  ▐▘    ▚▞▀ ▀ ▘ ▚▘
             │
             │
             │
             │
 4.446018e+07└──────────────────────────────────────────────────────────────────────────────────────
             0                                                                                    99

Scatter plot

$ < examples/mvrnorm.json jp -xy '..[x,y]' -type scatter

 3.535344│                                 ⠄             ⠄
         │                               ⠈⠂   ⠂       ⡀ ⠂
         │                          ⠐⡀⡀⡂   ⠁  ⢄  ⠁ ⠠
         │                            ⡀    ⠆     ⠈  ⠄⡀        ⠂
         │           ⡀       ⠠  ⡀ ⡀ ⠄  ⡀⠐⠄⠁⠐ ⠠⢆⠠⠂⠂⠄⣀⢈  ⡀⠈ ⡀
         │                     ⡀⠂⠂⠄ ⡀⠂⢔⠠ ⢤⢀⠌⣡⠁⠦⠄⠐⡐⠂⣀⠅⠁⠈ ⠂ ⠈⠁⠁      ⡀     ⠄
         │  ⡀         ⢀  ⠄     ⠈⠠ ⠡⠑⠈⠈⢢⡁⡄⢈⠂⢡⠈⡄⡀⠈⠰⢉⡠⠘⢄⢃⠉⢀⣄⠢⠠⠄ ⠠ ⡀⠁ ⡀ ⠂
         │                   ⠈ ⡂⠈⡁⠈⠄⢂⡹⡐⡡⡆⡥⣙⡶⡼⠱⣅⣅⣼⢗⡱⢐⣈⠑⢁⠂ ⢐⢁⠭⠘⡀  ⠈
         │                ⠁ ⢀⠄⢈⠈⡰⢀⡥⠋⣧⣓⣚⡛⢲⣽⣝⣭⢙⣟⢲⡽⣋⡠⣿⣜⣵⠙⡦⠗ ⣡⠁⠁⠁⠄⠠ ⠄⡂
         │                  ⠄⠌⠌⠡⠉⡐⢯⣵⡏⢵⡞⠂⢰⣽⣷⢛⣯⡣⣷⢭⣞⣏⠤⣾⢡⡻⠢⢊⢠⡠⠸⢄⣃⡀⢁⠐ ⠐⡀ ⠂    ⠄
         │              ⠨ ⡈⠂ ⢀⢑⠄⣜⡾⣴⢨⠶⣪⣧⢿⣷⣷⡱⣿⣞⣲⣮⣮⣯⢾⡷⡬⡷⣺⠤⢏⡼⣨⢌⡬⠠⢂⢠⠒⠱⠆⡈
         │          ⠈  ⠃ ⠄⡐⠂⠐⢀⢈⣂⡈⣳⣷⣜⢺⣿⣹⣷⣼⣯⡿⣃⣽⣿⢾⣟⣾⢵⣻⠯⡼⡃⣼⣗⢲⠪⠇⣉⠺ ⢱⠠⠙⡀⢐⠌
         │          ⠄   ⠈⠊⠐⠑⠨⠚⢁⡊⢾⡶⢩⢿⣏⣽⢞⣼⣇⣵⣿⣿⣽⣿⢽⣭⠺⣿⣽⣳⢚⣾⣻⣾⣜⠩⡒⣃⠈⢢⠕⢂⢰⡀  ⡔⢀⢀    ⡀
         │            ⢀⠂⠁⠂⠇ ⠂⠊⢀⠐⡘⡍⡇⣚⢸⢟⣯⢿⣳⡪⣫⣵⣿⣯⣿⢿⣷⣻⣖⣗⣻⣚⢥⡷⣕⣏⠶⠊⠄⣠⠰⠂⡄⠂ ⠄⠁
         │             ⠠⢂ ⠘⠐⣀ ⣀⢡⢐⠔⢫⠯⢕⠫⠿⣹⢶⣾⡻⣭⣽⢗⠿⣹⣛⣺⣿⠯⢲⡼⣵⢉⣭⢐⣟⡍⠄⠈⠥⠄   ⠁   ⠄
         │             ⠈⠂  ⠊⡀⡈⠢⡌⡠⠖⢤⠥⡑⣯⣾⣴⣯⡿⣯⣝⣯⣿⠧⣽⣒⢾⣼⣻⣛⣗⡹⡽⢪⠯⠒⡨⠈ ⠈⡐⢄ ⠂⠘⠠        ⠂
         │              ⠰  ⡀⠃⠁⠠ ⠉⡈⡨⡱⢍⠌⠷⣯⠫⠬⡙⣴⣯⡣⡟⡮⠩⣫⠿⢞⢵⡰⠞⡂⠴ ⠕⢀⡂⠁ ⢀ ⠤   ⠈
         │               ⢩⠂ ⠁⡄ ⢀⠲⢂⠑⢁⡘⠄⠵⣣⢑⢻⠨⡩⣌⠕⢮⣮⣋⢹⡁⣊⡃⠈⡕⡘⡠⠨⠄⡘⠨ ⠊⠁   ⠂
         │          ⠐     ⢀ ⠈⠐⠔⠈  ⠁⢀⣀⡃⣊⢁⡘⠁⠛⠨ ⠒⡑⡀⠵⢙⠄⠡⠢⠃⠄⠋⠅ ⠥⠁⠠⢀ ⠄
         │                  ⢀⢁ ⠆   ⠉⠁⠐ ⠄⠁⢑⡀⢀⠠⠑⢡⢊⠂⠑⠌⡅⠊⠄⠉⢈⡐  ⡀ ⠠   ⠂
         │                      ⢀   ⠑ ⠂  ⡁ ⠌⢠⠈⠂⠄⠉⡃⠈⠄   ⠂⠠⠁ ⠄  ⢀ ⠠
         │                             ⠐ ⠐ ⢁⠂⠂⠢⠠⠄⠔⠐       ⠁
         │                         ⠢  ⠁    ⠂⠐  ⠐       ⠐   ⠈
         │                           ⢀  ⠄⠈       ⠈
         │                                        ⠐
         │
         │
         │                                      ⠈
-4.271874└─────────────────────────────────────────────────────────────────────
          -4.08815                                                       3.79083

Histogram

Auto bin number

$ < examples/mvrnorm.json jp -x ..x -type hist
                                    684                                     1  [-3.27033,-2.69856)
                                   █████▌                                   2  [-2.69856,-2.12679)
                                   █████▌ 624                               3  [-2.12679,-1.55502)
                                   ███████████                              4  [-1.55502,-0.983254)
                               557 ███████████                              5  [-0.983254,-0.411485)
                             ▐████████████████                              6  [-0.411485,0.160285)
                             ▐████████████████                              7  [0.160285,0.732054)
                             ▐████████████████                              8  [0.732054,1.30382)
                             ▐████████████████                              9  [1.30382,1.87559)
                             ▐████████████████ 404                          10 [1.87559,2.44736)
                             ▐█████████████████████▌                        11 [2.44736,3.01913)
                         314 ▐█████████████████████▌                        12 [3.01913,3.5909]
                        ▄▄▄▄▄▟█████████████████████▌
                        ███████████████████████████▌
                        ███████████████████████████▌
                        ███████████████████████████▌
                        ███████████████████████████▌ 176
                        █████████████████████████████████
                    98  █████████████████████████████████
                  ▐██████████████████████████████████████ 79
    1     4   41  ▐███████████████████████████████████████████  14    4
  ▁▁▁▁▁▁▁▁▁▁▁█████████████████████████████████████████████████▁▁▁▁▁▁▁▁▁▁▁

    0     1    2     3    4     5    6     7    8     9   10    11   12

Fixed bin number

$ < examples/mvrnorm.json jp -x ..x -type hist -bins 5
                                         1652
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████
                                    █████████████████       728
                                    ██████████████████████████████████
                          541       ██████████████████████████████████
                   ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██████████████████████████████████
                   ███████████████████████████████████████████████████
                   ███████████████████████████████████████████████████
                   ███████████████████████████████████████████████████
                   ███████████████████████████████████████████████████
         22        ███████████████████████████████████████████████████       57
  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███████████████████████████████████████████████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

  [-3.8421,-2.3555)[-2.3555,-0.8689)[-0.8689,0.6177)  [0.6177,2.1043)  [2.1043,3.5909]

2D Histogram (heatmap)

$ < examples/mvrnorm.json jp -xy '..[x,y]' -type hist2d

  3.3608│                   ····    ········    ····
        │                   ····    ········    ····
        │                   ····    ········    ····
        │                   ················    ····
        │                   ················    ····
        │           ································
        │           ································
        │       ················░░░░░░░░░░░░················
        │       ················░░░░░░░░░░░░················
        │       ············▒▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒░░░░············
        │       ············▒▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒░░░░············
        │···············▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒············
        │···············▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒············
        │       ········░░░░▓▓▓▓▓▓▓▓████▓▓▓▓▒▒▒▒············
        │       ········░░░░▓▓▓▓▓▓▓▓████▓▓▓▓▒▒▒▒············
        │       ········░░░░▓▓▓▓▓▓▓▓████▓▓▓▓▒▒▒▒············
        │   ············▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒············
        │   ············▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒············
        │       ············▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒················
        │       ············▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒················
        │           ····································
        │           ····································
        │               ····························
        │               ····························
        │               ····        ····        ····
        │               ····        ····        ····
        │                                   ····
        │                                   ····
 -4.0045└───────────────────────────────────────────────────
        -3.8421                                       3.5909

JSONLines input

If your data consists of whitespace-separated JSON values (known as JSONLines for newline separators), you can use the -s ("slurp") mode of jq to aggregate your data points into a single array before passing it to jp:

$ echo "[0,1]" "[1,2]" "[2,3]" | jq -s . | jp

 3.16│
     │                                                   ▄▄▀
     │                                               ▄▄▀▀
     │                                           ▄▄▀▀
     │                                      ▗▄▄▀▀
     │                                  ▗▄▞▀▘
     │                              ▗▄▞▀▘
     │                          ▗▄▞▀▘
     │                      ▗▄▞▀▘
     │                  ▗▄▞▀▘
     │              ▗▄▞▀▘
     │           ▄▄▀▘
     │       ▄▄▀▀
     │   ▄▄▀▀
     │▄▀▀
 0.94└──────────────────────────────────────────────────────
     0                                                     2

CSV input

$ < examples/sin.csv jp -input csv -xy '[*][0,1]'

  1.059955│       ▗▄▛▀▀▚▄▖                                    ▄▄▀▀▀▄▄
          │     ▗▞▘      ▝▚▖                                ▄▀      ▝▀▄
          │    ▟▘          ▝▄                             ▗▀          ▝▀▖
          │  ▗▛              ▚▖                          ▞▘             ▝▙
          │ ▄▘                ▀▖                        ▞                 ▚
          │▞▘                  ▝▌                     ▗▛                   ▚▖
          │                     ▝▚                   ▐▘                     ▝▄
          │                       ▜▖                ▟▘                       ▝▄
          │                        ▐▄             ▗▞                          ▝▚
          │                          ▚▖          ▄▀
          │                           ▀▙▖      ▄▛
          │                             ▀▀▄▄▄▞▀▘
 -1.059955└─────────────────────────────────────────────────────────────────────
          0                                                                 9.95

Screenshots

Licensing

  • [ZT]闲谈摩根 兼答关于JP摩根和摩根斯坦利的渊源和区别,其他的摩根八卦 作者:安普若 2008年1月22日   首先说,J. P. Morgan是个人,他叫John Pierpont Morgan (1837/4/17–1913/3/31) ,是美国的大银行家。当年GE的合并,就是他捣鼓的。后来他又把卡内基的钢铁公司给整合了(当年5个亿的并购,竟然没用律师,也没写合同)。然后就是弄铁路(那个年

  • 跳转指令分三类: 一、无条件跳转: JMP; 二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转); 三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了. 根据标志位跳转的指令: JE ;等于则跳转 JNE ;不等于则跳转 JZ ;为 0 则跳转 JNZ ;不为 0 则跳转 JS ;为负则跳转 JNS ;不为负

 相关资料
  • 问题内容: 我想通过注释@Query通过Jpa存储库进行Join查询。我有三个表。 本机查询是: 现在我有了Table Hibernate实体,所以我在ApplicationRepository中尝试过 日志说 意外的标记 有什么想法吗? 我的表实体 Application.java: Customer.java: User.java: 问题答案: 您不需要JPA中的ON子句,因为借助映射注释,J

  • 问题内容: 我正在尝试创建一个标准来从3个表(关联,更新和详细信息)中检索一些对象。详细信息引用了关联和更新,而更新引用了详细信息列表。我的目标是在给定关联ID的情况下,在指定字段中检索至少包含明细且值为空的更新列表。在JPQL中很容易做到,但是客户说必须用标准编码。 我的JPQL是: 我尝试了以下操作,但是它只是返回了数据库中的所有更新: 谁能帮我?我搜索了但找不到3个实体的任何示例。 问题答案

  • 问题内容: 我有一个Media实体,其中包含用户上载文件的一些基本字段。为了保存上传文件的字节,我想创建一个包含该功能的自定义存储库。按照Spring文档中的步骤,我创建了一个看起来像这样的接口: 然后,我为此接口提供了一个实现 这样,我就创建了以下接口: 现在,当我启动服务器时,得到以下堆栈跟踪: 我找到了类似的帖子,但是那里的建议(全部在同一个程序包中,命名约定)是我已经在做的事情。我所有的媒

  • 问题内容: 我正在从本教程中学习JPA 。 我在理解以下注释时有些困惑: 可嵌入类型的字段默认为持久性,就像用@Embedded注释一样。 如果可嵌入类型的字段默认为持久性,那么为什么我们需要注释 问题答案: 该注解允许指定一个类,其实例存储为拥有实体的固有部分。此注释 没有属性 。 该注释用于指定其值是一个可嵌入类的实例实体的持久字段或属性。默认情况下,类中指定的列定义适用于拥有实体的表,但是

  • 问题内容: 我想写一个类似的查询,但它不返回任何东西: -它不起作用。 完美地工作。 这是我的代码: 问题答案: Spring数据JPA查询需要“%”字符以及查询中的空格字符,如 。 cf. http://docs.spring.io/spring- data/jpa/docs/current/reference/html 。 您可能希望完全摆脱注释,因为它看起来类似于标准查询(由spring数据

  • 问题内容: 在我的JPanel中,我有许多组件,包括其他JPanels,JLabels,JTextAreas和JButtons。因为我想实现一个教程模式,在该模式下将出现另一个窗口,并且禁用主JPanel中的所有内容,因为新窗口逐个解释了每个“功能” …我想知道如何禁用我内部的所有组件。原始的JPanel。我知道您可以使用: 但是我不想为我的JPanel中的每个组件编写它。我想知道是否可以通过fo

  • 问题内容: 我在JPopupMenu中有一个JComboBox(以及其他组件)。事实证明,每当我打开组合框的弹出窗口(以选择一个项目)时,父级JPopupMenu都会关闭。我一直在尝试找到一种方法来覆盖此功能,但无济于事。 有没有人建议防止关闭父级JPopupMenu?谢谢! 问题答案: 这不可能直接实现,很难覆盖已知的错误,另一方面,Swing不允许同时使用两个lightwieght弹出组件 但

  • 问题内容: 我对此有疑问。我有一个JPanel,通常我会像这样创建一个JLabel: 但是我希望每次单击一个按钮时,在该面板中创建一个新的JLabel,它的大小相同,但高度不同。我试过了: 但是这样一来,我就无法设定界限。我从JTextField获得的stringName。 问题答案: 首先,使用layout。正确完成布局后,组件将按照需要放置。其次,在向布局动态添加组件时,您需要告诉布局更新。这