Вызов основного метода класса из другого Java-класса - PullRequest
2 голосов
/ 15 февраля 2012

У меня есть два java-класса. Один, в котором написан мой GUI, и другой класс, в котором я реализовал интерфейс (назовите его class 2). Мой проект начинается с основного метода GUI. Я хочу отправить строку в мой класс GUI из класса 2 для отображения его в области текста, но ничего не происходит.

Поскольку мой основной класс ГИ

           public class GraphicalInterface extends javax.swing.JFrame{
              //I have created a function over here for displaying string in text area

              public void show1(String name)
                {
                  jTextArea1.setText(name);

                 }

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

Я создал объект этого класса в моем классе 2, как показано ниже

                    GraphicalInterface b=new GraphicalInterface();
                    b.show1("pear");// it does not allow me to write this statement

Пожалуйста, помогите мне, как я могу вызвать основной метод класса из другого Java-класса. Спасибо.

Ответы [ 4 ]

1 голос
/ 15 февраля 2012

Возможно, вы пытаетесь вызвать этот код вне конструктора или метода (или блока инициализатора), а в Java этого сделать нельзя.Вместо этого вызовите этот код внутри метода или конструктора.

1 голос
/ 15 февраля 2012

Полагаю, у вас проблема с дизайном в вашем проекте. Позвольте мне объяснить. Вы говорите, что у вас есть класс GUI "GraphicalInterface" , который содержит основной метод, который является отправной точкой приложения в Java. Вы говорите, что вам нужно вызвать основной метод этого класса в другом классе, "ваш класс 2". Если да, то почему это место не принадлежит "основному методу" вашего приложения, в котором вы пытаетесь вызвать основной метод этого графического интерфейса. Вызовите основной метод GUI x (), пусть место, которое вы вызываете x (), принадлежит основному методу.

Если вам нужно работать с полями графического интерфейса в других классах, а также сохранять основной метод там, тогда я предлагаю вам применить Singleton Pattern к вашему классу графического интерфейса. Таким образом, вы сможет ссылаться на единственный экземпляр вашего общедоступного синглтон-класса везде в вашем приложении.

public class GraphicalInterface extends javax.swing.JFrame
{
              public String textAreaContent;

              public getX()( return textAreaContent;)
              public setX(String s)( this.textAreaContent = s;)

              public void show1()
              {
                  jTextArea1.setText(this.getTextAreaContent());
              }
              public static void main(String args[]) 
              {        
                 //code
              }
 }

Из вашего другого класса:

 GraphicalInterface b=new GraphicalInterface();
 b.setX("text area content");
 b.show1();
0 голосов
/ 24 марта 2017

Вам необходимо создать метод в class2 и вызвать его из вашего main метода.

Пример кода class1

public class Test1 {
    public void show(String ab){
        System.out.println(ab);
    }
    public static void main(String[] args) {
        Test2.Test2();
    }
}

Над кодом iсоздайте класс Test1.java как ваш class1 и создайте метод с одним параметром и вызовите его из метода class2.

Пример кода class2

public class Test2 {
    static void Test2(){
        new Test1().show("Pass String to class1 show method");
    }
}

здесь вы можете передать string значение.

0 голосов
/ 15 февраля 2012

Нет, лучшее решение - это не делать этого, и если вы чувствуете, что должны, скорее всего, потому, что ваш дизайн как-то сломан. Вместо этого напишите свой код так, чтобы ваши классы были настоящими классами ООП, которые интеллектуально взаимодействуют (слабая связь, высокая когезия), и для них требуется только один основной метод.

Также вы заявляете:

GraphicalInterface b=new GraphicalInterface();
b.show1("pear");// it does not allow me to write this statement

Что вы подразумеваете под "это не позволяет мне написать это утверждение"? Компилятор Java выдает ошибку компиляции? JVM выдает исключение? Выдвигается ли JVM из вашего монитора и дает вам пощечину? Пожалуйста, дайте нам знать все детали, необходимые для того, чтобы помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...