2014-04-01 68 views
0
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Color; 
import javax.swing.JPanel; 
import java.util.Scanner; 

public class BarGraph extends JPanel 
{ 
    private int n1, n2, n3, n4, n5; 
    BarGraph(int num1, int num2, int num3, int num4, int num5) 
    { 
     int n1 = num1; 
     int n2 = num2; 
     int n3 = num3; 
     int n4 = num4; 
     int n5 = num5; 
    } 

    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 
     g.drawRect(0, 100, 100, 10); 
     g.drawRect(0, 0, n1 * 10, 10); 
     g.drawRect(0,20, n2 * 10, 10); 
     g.drawRect(0,40, n3 * 10, 10); 
     g.drawRect(0,60, n4 * 10, 10); 
     g.drawRect(0,80, n5 * 10, 10); 
    System.out.print(n1); 
    } 
} 

BarGraphTest類不讀書的構造屬性

package BarGraph; 

import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import java.util.Scanner; 
/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* 
* @author AJ 
*/ 
public class BarGraphTest 
{ 
    public static void main(String[] args) 
    { 

       System.out.print("Enter 5 integers seperated by spaces:"); 
       Scanner input = new Scanner(System.in); 
       int n1 = input.nextInt(); 
       int n2 = input.nextInt(); 
       int n3 = input.nextInt(); 
       int n4 = input.nextInt(); 
       int n5 = input.nextInt(); 

     BarGraph panel = new BarGraph(n1, n2, n3, n4, n5); 
     JFrame application = new JFrame(); 
     application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     application.add(panel); 
     application.setSize(300, 300); 
     application.setVisible(true); 
    } 
} 

基本上試圖讓5個整數並繪製矩形5被相應地調整。我的變量雖然是空的。我錯過了什麼嗎?我System.out.printed變量n1,但沒有什麼。

+0

查找到變量陰影。 –

+0

什麼是變量聲明?你怎麼做呢?一旦你回答了這個問題,你在做什麼:'int n1 = num1;'? –

+0

我是個假人。非常感謝。 – user3485650

回答

2

在您的構造函數BarGraph中,您聲明瞭局部變量並忽略了您的類變量,因此不會分配類變量。局部變量優先於類變量。刪除int以刪除聲明,並且類變量將得到正確解決。

變化

BarGraph(int num1, int num2, int num3, int num4, int num5) 
{ 
    int n1 = num1; 
    int n2 = num2; 
    int n3 = num3; 
    int n4 = num4; 
    int n5 = num5; 
} 

BarGraph(int num1, int num2, int num3, int num4, int num5) 
{ 
    n1 = num1; 
    n2 = num2; 
    n3 = num3; 
    n4 = num4; 
    n5 = num5; 
} 
+0

感謝您抽出時間來回答這樣一個簡單的問題! – user3485650