当我将组件的大小设置为超出组件位置的x和y时,它们都会显示出来,否则它们就不会出现.

这是我的代码:

public class AdamakPogram{

public static void main(String[] args) {

PlayGround playGround = new PlayGround();

Adamak ad1 = new Adamak();

Adamak ad2 = new Adamak();

ad1.setLocation(100,100);

ad2.setLocation(150, 100);

ad1.addMouseListener(new FocusListener(ad1));

ad1.addKeyListener(new ArrowListener(ad1));

playGround.addPerson(ad1);

ad2.addMouseListener(new FocusListener(ad2));

ad2.addKeyListener(new ArrowListener(ad2));

playGround.addPerson(ad2);

}

}

我的PlayGround课程:

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

public class PlayGround extends JFrame{

private static final long serialVersionUID = 1L;

private JPanel zone;

public PlayGround() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 800, 600);

setResizable(false);

zone = new JPanel();

zone.setBorder(new EmptyBorder(5, 5, 5, 5));

zone.setBounds(100, 100, 800, 600);

setContentPane(zone);

zone.setLayout(null);

setVisible(true);

}

public void addPerson(Adamak adamak){

zone.add(adamak);

revalidate();

repaint();

}

public JPanel getZone() {

return zone;

}

public void setZone(JPanel zone) {

this.zone = zone;

}

}

我的adamak(自定义组件)类:

import java.awt.Graphics;

import java.awt.Point;

import javax.swing.JComponent;

public class Adamak extends JComponent {

private static final long serialVersionUID = 1L;

@Override

protected void paintComponent(Graphics arg0) {

super.paintComponent(arg0);

Point point = getLocation();

arg0.drawRect(point.x-10, point.y-10, 20, 50);//drawing stomach

arg0.drawLine(point.x+10,point.y, point.x+20, point.y+50);//drawing right hand

arg0.drawLine(point.x-10, point.y, point.x-20, point.y+50);//drawing left hand

arg0.drawLine(point.x, point.y-10, point.x, point.y-20);//drawing neck

arg0.drawLine(point.x-5, point.y+40, point.x-5, point.y+100);//drawing left leg

arg0.drawLine(point.x+5, point.y+40, point.x+5, point.y+100);//drawing right leg

arg0.drawOval(point.x-10, point.y-40, 23, 20);//drawing head

arg0.drawRect(point.x-20, point.y-40, 40, 140);

}

public void moveRight(){

Point point = getLocation();

if((point.x+1-20) < 710){

setLocation(new Point(point.x+1, point.y));

setBounds(point.x-20,point.y-40,710-40,461-140);

repaint();

}

}

public void moveLeft(){

Point point = getLocation();

if((point.x-1-20) > 0){

setLocation(new Point(point.x-1,point.y));

setBounds(point.x-20,point.y-40,710-40,461-140);

repaint();

}

}

public void moveUp(){

Point point = getLocation();

if((point.y-1-40) > 0){

setLocation(new Point(point.x,point.y-1));

setBounds(point.x-20,point.y-40,710-40,461-140);

repaint();

}

}

public void moveDown(){

Point point = getLocation();

if((point.y+1-100) < 461){

setLocation(new Point(point.x,point.y+1));

setBounds(point.x-20,point.y-40,710-40,461-140);

repaint();

}

}

}

任何帮助,将不胜感激.

java 组件 未显示出来_java – 自定义组件未显示相关推荐

  1. 微信小程序 基础3【组件化开发、自定义组件、全栈开发、使用Express】

    视频地址: https://www.bilibili.com/video/BV1cW411T7t6  [2018]学做小程序- 清华大学 https://www.bilibili.com/video/ ...

  2. 【自定义组件】如何引用自定义组件

    1. 可以在APP.JSON内引用自定义组件,此时该组件为所有页面共享. 2. 可以在页面的JSON文件内引用自定义组件,此时为该页面独享. 引入代码如下: /** * myTag 自定义组件名称 * ...

  3. Vue如何自定义组件?超详细Vue自定义组件指南!使用自定义组件减少重复造轮子! ∠( °ω°)/ 前端知识

    文章目录 使用意义 基础使用 给组件添加属性 传递事件 自定义组件的v-model 剖析v-model原理 使用示例 插槽 使用意义 有时候一组HTML代码可能会在多出使用(比如页眉页脚).如果我们把 ...

  4. java swing 控件_Java Swing组件

    一.        java swing 组件技术简介 1.swing的特性 l  是AWT的扩展,swing比AWT提供了更多的组件和外观 l  它是纯java代码编写(除了JFrame.JDial ...

  5. vue自定义组件html,Vue自定义组件(简单实现一个自定义组件)

    在用vue构建项目的过程中,我们有时会用到别人开发的组件如vue-router:使用他人组件的正常步骤如下: 1.命令行进行安装,执行install: 2.在vue项目中的入口文件main.js中,进 ...

  6. 小程序之修改引用的vant组件样式(包括自定义组件中的vant样式)

    今天在写小程序的时候,刚好遇到,以前遇到解决了之后忘记记录,今天记录下! 一般组件的基础样式会跟ui设计稿有些出入,就得改动! 使用vant的话,官方就有提供方法,比如复选框 我在项目中用custom ...

  7. java flowlayout 左对齐_Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

    本文实例讲述了Java Swing组件布局管理器之FlowLayout(流式布局).分享给大家供大家参考,具体如下: FlowLayout应该是Swing布局管理器学习中最简单.最基础的一个.所谓流式 ...

  8. java的构造函数格式_java – 自定义MapReduce输入格式 – 找不到构造函数

    我正在为Hadoop 0.20.2编写一个自定义的InputFormat,并且遇到NoSuchMethodException我无法摆脱.我开始时: public class ConnectionInp ...

  9. java注解获取参数_JAVA 自定义注解及参数获取 | 学步园

    package com.java.annotation; import java.lang.annotation.*; /** * Created by lw on 14-5-30. * 自定义注解 ...

最新文章

  1. 手机视频直播解决方案
  2. 如何理解delegate (委托)设计模式
  3. 第四届“传智杯”全国大学生IT技能大赛(决赛B组)【题解】
  4. QT的QMediaPlaylist类的使用
  5. 最小值c语言 循环,C语言循环结构 -C语言求全班同学身高的最大值和最小值
  6. [Jobdu] 题目1527:首尾相连数组的最大子数组和
  7. 关于职场的6个深刻道理,每个都是血泪教训换来的,你一定要懂
  8. 灰常好的开源项目[c/c++]
  9. 椭圆曲线形式下的Pedersen commitment——vector commitment和polynomial commitment
  10. 20155201李卓雯 20155212江振思 20155313杨瀚《信息安全技术》 实验三 数字证书应用...
  11. 如何进行邮件营销,邮件营销群发是否有效?
  12. 织梦dedecms 内容管理系统模板标签代码参考
  13. [b2g] firefoxOS 移植记录
  14. 对“主数据”的一点吐槽
  15. 你对Web3的迅速发展一无所知,逃离大厂去拥抱Web3
  16. 计算机组成原理MVRD,计算机组成原理实验
  17. 情侣的网站代码java_java版给爱人表白祝福的小项目
  18. Google APAC 2016 University Graduates Test Practice Round APAC test
  19. org.apache.mina.core.RuntimeIoException: Failed to get the session 异常可能出现的原因
  20. java new date 减一天_java日期增加一个月或减少一天

热门文章

  1. Nginx设置本地浏览器缓存
  2. 每天九点十分开始每半小时一次执行一个cron_趣讲 PowerJob 超强大的调度层,开始表演真正的技术了...
  3. uml+oopc嵌入式c语言开发精讲_当前火爆的嵌入式领域,为什么选择C语言作为开发语言?了解一下...
  4. 网传一些著名互联网公司的实习工资,某节真的香啊
  5. try catch 有多烦人,我就有多暴躁!一次搞定 Exception ^ ^
  6. Eclipse中JSP默认模板修改:设置编码为UTF-8以及导入JSTL等
  7. 杭电1280java实现
  8. 自定义eclipse启动画面
  9. 利用cookie显示上次浏览的时间
  10. Wireshark软件的安装,进行数据包的捕获【Wireshark安装使用】