我想使用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/