java - 我想在图形用户界面中绘制矩形

标签 java swing user-interface awt

我想使用java中的swing和抽象窗口工具包在屏幕中心绘制具有一定宽度和高度的矩形。下面提到了代码,请帮助我。首先,我绘制一些标签和文本字段的网格布局,用户可以在其中输入宽度和高度,当用户点击绘制按钮时,它应该绘制具有特定值的矩形。

这是绘制布局的主类。

    package ABC;

import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

    public class Drectangle extends JFrame  implements ActionListener{

        public JTextField Height=new JTextField("100",10);

        public JTextField weidth=new JTextField("800",10);

        public int x=00;

        public int y=00;

        public JButton Draw=new JButton("Draw");

            public Drectangle() {

            super("Programme");

            setSize(900,600);

            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            JPanel pane=new JPanel(new GridLayout(3,2));

            pane.add(new JLabel("Height of Rectangle :"));

            pane.add(Height);

            pane.add(new JLabel("Weidth of Rectangle : "));

            pane.add(weidth);

            pane.add(Draw);

            Draw.addActionListener(this);

            JPanel pane2=new JPanel();

            pane2.add(pane); 

            setContentPane(pane2);


            DrawRectangles d1=new DrawRectangles(x,y);

            Container content=getContentPane();

            content.add(d1);

            setVisible(true);

        }

        public static void main (String args[]) {

            Drectangle d=new Drectangle();

            d.pack();
        }


    public void actionPerformed(ActionEvent e) {

            JButton buffer=(JButton)(e.getSource());

            if(buffer.getActionCommand().equals("Draw")) {

                x=Integer.parseInt(Height.getText());

                y=Integer.parseInt(weidth.getText());
            }

        }

    }

这是绘制矩形的子类。

package ABC;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DrawRectangles extends JPanel {

    public int X;

    public int Y;

    public DrawRectangles(int x, int y) {

         X=x;

         Y=y;// TODO Auto-generated constructor stub
    }

    public void paintComponent(Graphics comp) {

        Graphics comp2D=(Graphics2D) comp;

        Dimension ScreenSize=Toolkit.getDefaultToolkit().getScreenSize();

        int half_Screen_Height=(ScreenSize.height)/2;

        int half_Screen_Width=(ScreenSize.width)/2;

        comp2D.drawRect(half_Screen_Height, half_Screen_Width, X , Y);

        }
}

我想使用java swing和java art类绘制矩形,上面提到了代码,请任何人帮助我,我错了。谢谢。

最佳答案

问题似乎是 DrawRectangles 的默认宽度和高度为 0,0。对您正在创建的 DrawRectangle 调用 setPreferredSize。您可能还想在 DrawRectangles paintComponent 方法中调用 fillRectangle,以确保确实绘制了矩形,并且 drawRectangle 的尺寸在您的 DrawRectangle 组件的尺寸范围内

关于java - 我想在图形用户界面中绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275880/

相关文章:

java - JavaFx 的 setOnAction 方法在幕后是如何工作的?

java - 单元测试中 SerialContext 中的 'java:comp/env' 的 Tomcat -Hudson- 查找失败

java - 使用矩阵创建迷宫(JAVA)

java-gui设计美学

android - 在选择时更改 Android ListView 文本的文本颜色

c# - 自定义控件的文本框字符串/文本的填充

java - for循环之外的语句不会被执行

java - 如何将 XML 转换为 Java 树结构?

Java Swing GUI 客户端和服务器聊天应用程序 TextArea 未更新

python - Tkinter:我如何动态创建一个可以销毁或删除的小部件?