Поместите изображение и текстовое поле в один класс - PullRequest
0 голосов
/ 17 января 2020

Мой java код ниже пытается поместить изображение и текстовое поле в один класс. Я новичок в java программировании, которое я знаю на других языках, я бы просто удалил накипь var pi c = image и var text = textfield. Это все, что я ищу в этом java коде. Просто объявите текстовое поле и изображение и отобразите его в одном окне.

import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.*;  

class Main extends JFrame {

    public static void main(String[] args0) {

        try {
            JFrame frame = new JFrame();
            File imageFile = new File("/Users/johnzalubski/Desktop/j/gg.jpg");
            Image i = ImageIO.read(imageFile);
            ImageIcon image = new ImageIcon(i);
            JLabel imageLabel = new JLabel(image);
            frame.add(imageLabel);
            frame.setLayout(null);
            imageLabel.setLocation(0, 0);
            imageLabel.setSize(300, 250);
            imageLabel.setVisible(true);
            frame.setVisible(true);
            frame.setSize(1000, 750);
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);

            JFrame f= new JFrame("TextField Example");  

            JTextField t1,t2;  
            t1=new JTextField("Welcome to Javatpoint.");  
            t1.setBounds(50,100, 200,30);  
            t2=new JTextField("AWT Tutorial");  
            t2.setBounds(50,150, 200,30);  
            frame.add(t1); f.add(t2);  
            frame.setSize(4000,400);  
            frame.setLayout(null);  
            frame.setVisible(true);  

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1 Ответ

1 голос
/ 17 января 2020

Вот простой пример, чтобы вы начали. Обратите внимание на следующие комментарии:

import java.awt.BorderLayout;
import java.io.IOException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

class Main {

    public static void main(String[] args0) {

        try {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //use public resources when posting questions or answers
            URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg");
            ImageIcon image= new ImageIcon(url);
            JLabel imageLabel = new JLabel(image);
            //add the label to the frame using the default layout manager (BorderLayout)
            frame.add(imageLabel); //add label to the default position BorderLayout.CENTER
            //frame.setLayout(null); //do not use null layout
            //imageLabel.setLocation(0, 0); //do not set bounds, that is the job of the layout manager

            JTextField t1 =new JTextField("Welcome to Javatpoint.");
            frame.add(t1, BorderLayout.SOUTH); //add text field to the frame using BorderLayout other position
            frame.pack();
            frame.setVisible(true);

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

Редактировать: нет необходимости в Main для расширения JFrame. Это был просто остаток.

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