Импорт кнопки и текстового поля из другого класса в основной класс - PullRequest
0 голосов
/ 07 января 2019

У меня есть два разных класса (mainClass) и (visual). В визуальном классе у меня есть метод, и внутри метода я поместил необходимый код для простого JButton. В основном классе я создаю объект для вызова метода из визуального класса, чтобы показать кнопку в основном классе. Но это не работает. Буду признателен за любой совет.

package init;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JButton;

public class mainClass {

    private JFrame frame;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    mainClass window = new mainClass();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

    }

    /**
     * Create the application.
     */
    public mainClass() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);


 In the code below I made an object and called the method from the visual class

        visual bt = new visual();
        bt.btn();

    }

}

//////////////// VISUAL CLASS ////////////////////// *

package init;

import javax.swing.JButton;
import javax.swing.JFrame;

public class visual {
    public JFrame frame;

    public void btn() {

        JButton btnNewButton = new JButton("New button");
        btnNewButton.setBounds(141, 155, 151, 45);
        frame.getContentPane().add(btnNewButton);

    }


}

1 Ответ

0 голосов
/ 08 января 2019

Для того, чего вы пытаетесь достичь, вам не нужно 2 класса. Вы можете сделать это так:

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

public class MainClass {

  /**
   * Launch the application.
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {

          JFrame frame = new JFrame();
          frame.setBounds(100, 100, 450, 300);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

          JButton btnNewButton = new JButton("New button");
          frame.getContentPane().setLayout(new FlowLayout());
          frame.getContentPane().add(btnNewButton);
          frame.setVisible(true);

        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }
}
...