Я использовал canvas для создания графической утилиты. Есть ли способ, которым я могу также включить JButtons, JTextFields и т. Д. - PullRequest
0 голосов
/ 18 апреля 2020

Я создал графическую утилиту, используя canvas. В настоящее время информация вводится через консоль. Однако я хочу сделать программу более презентабельной, добавив входные данные через JTextField и JButtons. Есть ли способ, которым я могу это сделать?

1 Ответ

3 голосов
/ 18 апреля 2020

как то так:

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JFrameWithCanvas extends JFrame {

    private Canvas canvas = new Canvas();

    public JFrameWithCanvas() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel pnlToolbar = new JPanel();
        pnlToolbar.add(new JTextField(10));
        pnlToolbar.add(new JButton("foo"));
        getContentPane().add(pnlToolbar, BorderLayout.PAGE_START);
        canvas.setBackground(Color.MAGENTA);
        getContentPane().add(canvas, BorderLayout.CENTER);
        canvas.setPreferredSize(new Dimension(300, 300));
        pack();
        setLocationRelativeTo(null); // center it on the screen
    }

    public static void main(String[] args) {
        new JFrameWithCanvas().setVisible(true);
    }   
}
...