首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java图形AWT

Java图形AWT
EN

Stack Overflow用户
提问于 2020-05-03 15:55:23
回答 2查看 62关注 0票数 1

当我运行下面的代码时,我无法看到背景颜色为红色。它显示的是默认的。我有什么要加到这些线上的吗?

代码语言:javascript
复制
import java.awt.*;
import java.awt.Graphics;
import javax.swing.*;
public class gfix extends JPanel {
    @Override
    public void paintComponent(Graphics g) {
       super.paintComponent(g);
       g.setColor(Color.red);
       g.fillRect(80, 100, 150, 75);
    }
    public static void main(String[] args){
       gfix gg=new gfix();
       JFrame frame = new JFrame("RISK");
       frame.setSize(800, 600);
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       JPanel panel = new JPanel();
       panel.setLayout(null);
       frame.add(panel);
       JButton button = new JButton("test");
       button.setBounds(100, 100, 150, 150);
       panel.add(button);
       frame.setVisible(true);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-04 00:07:24

代码语言:javascript
复制
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class gfix {

    public static void main(String[] args) {
        JFrame frame = new JFrame("RISK");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        panel.setBackground(Color.RED);
        frame.add(panel);
        JButton button = new JButton("test");
        // adjust numbers as needed
        button.setMargin(new Insets(20,40,20,40));
        panel.add(button);
        // adjust numbers as needed
        panel.setBorder(new EmptyBorder(10,40,50,200));
        frame.pack();
        frame.setVisible(true);
    }
}

其他贴士:

  1. Java必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAFs。因此,它们不利于像素的完美布局。相反,可以使用布局管理器或combinations of them,以及white space的布局填充和边框。
  2. 提供了ASCII艺术或简单的图形界面布局的最小尺寸,如果可调整,具有更多的宽度和高度-以显示如何使用额外的空间。请学习常用的Java名称(命名约定-例如,consistently.

EachWordUpperCaseClassfirstWordLowerCaseMethod()firstWordLowerCaseAttribute,除非是UPPER_CASE_CONSTANT),然后使用它

票数 0
EN

Stack Overflow用户

发布于 2020-05-03 16:04:31

您将在painGraphics()类中重写gfix类对象,因此将gfix类对象添加到您的框架中,而不是gfix提供的JPanel类对象。

代码语言:javascript
复制
       gfix gg=new gfix();
       JFrame frame = new JFrame("RISK");
       frame.setSize(800, 600);
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       //JPanel panel = new JPanel();      Not needed
       //panel.setLayout(null);
       frame.add(gg);
       JButton button = new JButton("test");
       button.setBounds(100, 100, 150, 150);
       gg.add(button);
       frame.setVisible(true);

对于g.fillRect(80, 100, 150, 75);,给出适当的面板边界来填充完整的面板背景。或者在int width = getWidth(); int height = getHeight();中使用paintGraphics获取实际高度和宽度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61577436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档