2016-09-23 3 views
0

Попытка изменить цвет фона моего JPanel из другого класса с использованием переменной. Почему это дает мне ошибку? (На самом деле новый для Явы, извините ...)Цвет фона JPanel от другого класса?

import java.awt.Color; 

import javax.swing.*; 

public class window { 

    public window(int x, int y, boolean isVisible, boolean isResizable, Color col){ 
     JFrame jframe = new JFrame(); 
     int xSize = x; 
     int ySize = y; 
     jframe.setSize(xSize, ySize); 
     jframe.setVisible(isVisible); 
     jframe.setResizable(isResizable); 

     JPanel jpanel = new JPanel(); 
     jframe.add(jpanel); 
     jpanel.setSize(xSize - 100, ySize - 100); 
     jpanel.setOpaque(true); 
     jpanel.setBackground(Color.col); 
     jpanel.setVisible(true); 

    } 

} 

Мой главный класс делает это:

import java.awt.Color; 


public class design { 

    public static void main(String[] args) { 
     window window1 = new window(400, 200, true, true, Color.green); 
     window window2 = new window(1000, 720, true, true, Color.red); 
    } 

} 

Ошибка это дает мне это «Col не может быть решен в поле». Что я знаю, это означает, что он не понимает, что делает col, но это то, что меня смущает, потому что я объявил его как цвет ...

ответ

4

Вы ссылаетесь на переменную get из конструктора.

Просто измените jpanel.setBackground(Color.col); на:

jpanel.setBackground(col); 
+0

Спасибо, это сработало, я понимаю, как хорошо. Я приму ответ, когда таймер закончится, вы были слишком быстры;). Просто из любопытства, что вы думаете о моем коде? Я правильно и эффективно использую классы? – Cutter

+1

Сначала в соответствии с соглашениями Java вы должны назвать класс с большой буквы ('Window'). Тогда класс 'Window' должен« расширять JFrame »или, по крайней мере, иметь его как частное поле, доступное с помощью геттеров/сеттеров. Нет общего способа написания кода, поэтому вы должны попробовать его сами и получить опыт работы с практикой :) –

+0

Хорошо, да, мои проблемы с капиталами, потому что я знал это ... Почему класс окна расширяется JFrame ? Разве это уже не часть его, потому что она импортирована? – Cutter

Смежные вопросы