簡體   English   中英

在JPanel上創建條形圖

[英]Creating a Bar graph on JPanel

誰能告訴我這是怎么了? 我對Java很陌生,我似乎無法JPanel為什么它無法打開JPanel或矩形或字符串。 沒有顯示任何內容,但是可以編譯。

碼:

import java.awt.*;
import javax.swing.*;

public class Graphing extends JPanel
{

   public static void main (String[] args)
   {
   }

   public Graphing()
   {
      JFrame frame = new JFrame ("Nested Panels");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

      frame.getContentPane();
      frame.setPreferredSize(new Dimension(350,200));
      frame.pack();
      frame.setVisible(true);
   }

   public void paintComponent (Graphics page)
   {            
      super.paintComponent (page);          
      final int HEIGHT = 10;

      page.setColor (Color.yellow);
      page.fillRect (50, 50, (7*10), HEIGHT);//1-10
      page.fillRect (50, 64, (5*10), HEIGHT);//11-20
      page.fillRect (50, 78, (0*10), HEIGHT);//21-30
      page.fillRect (50, 92, (1*10), HEIGHT);//31-40
      page.fillRect (50, 106, (9*10), HEIGHT);//41-50
      page.fillRect (50, 120, (12*10), HEIGHT);//51-60
      page.fillRect (50, 134, (4*10), HEIGHT);//61-70
      page.fillRect (50, 148, (6*10), HEIGHT);//71-80
      page.fillRect (50, 162, (2*10), HEIGHT);//81-90
      page.fillRect (50, 176, (13*10), HEIGHT);//91-100

      page.drawString("1-10",10,60);
      page.drawString("11-20",10,74);
      page.drawString("21-30",10,88);
      page.drawString("31-40",10,102);
      page.drawString("41-50",10,116);
      page.drawString("51-60",10,130);
      page.drawString("61-70",10,144);
      page.drawString("71-80",10,158);
      page.drawString("81-90",10,172);
      page.drawString("91-100",10,186);

      page.drawString("7", 30, 60);
      page.drawString("5", 30, 74);
      page.drawString("0", 30, 88);
      page.drawString("1", 30, 102);
      page.drawString("9", 30, 116);
      page.drawString("12", 30, 130);
      page.drawString("4", 30, 144);
      page.drawString("6", 30, 158);
      page.drawString("2", 30, 172);
      page.drawString("13", 30, 186);
   }

}
public Graphing()   {
  JFrame frame = new JFrame ("Nested Panels");
  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

  frame.getContentPane().add(this);

在主要

public static void main(String[] args) {
    new Graphing();
} 

要完全成為猶太潔食,主要方法實際上應該是:

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
           new Graphing();
        }
    });
} 

在這一點上,您不必了解第二個主要方法代碼的詳細信息,但可以確保它確保在Swing主線程上調用了Swing GUI。 這樣做可以幫助避免在您的簡單程序中不太可能發生的不可預測的線程問題,但是如果您的代碼變得更加復雜,則可能會發生這種情況。

其他問題-您將要嘗試避免使用幻數,硬編碼數字,而應使用變量,這將使您可以更輕松地更改鋼筋的高度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM