java 组件 未显示出来_java – 自定义组件未显示
当我将组件的大小设置为超出组件位置的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 – 自定义组件未显示相关推荐
- 微信小程序 基础3【组件化开发、自定义组件、全栈开发、使用Express】
视频地址: https://www.bilibili.com/video/BV1cW411T7t6 [2018]学做小程序- 清华大学 https://www.bilibili.com/video/ ...
- 【自定义组件】如何引用自定义组件
1. 可以在APP.JSON内引用自定义组件,此时该组件为所有页面共享. 2. 可以在页面的JSON文件内引用自定义组件,此时为该页面独享. 引入代码如下: /** * myTag 自定义组件名称 * ...
- Vue如何自定义组件?超详细Vue自定义组件指南!使用自定义组件减少重复造轮子! ∠( °ω°)/ 前端知识
文章目录 使用意义 基础使用 给组件添加属性 传递事件 自定义组件的v-model 剖析v-model原理 使用示例 插槽 使用意义 有时候一组HTML代码可能会在多出使用(比如页眉页脚).如果我们把 ...
- java swing 控件_Java Swing组件
一. java swing 组件技术简介 1.swing的特性 l 是AWT的扩展,swing比AWT提供了更多的组件和外观 l 它是纯java代码编写(除了JFrame.JDial ...
- vue自定义组件html,Vue自定义组件(简单实现一个自定义组件)
在用vue构建项目的过程中,我们有时会用到别人开发的组件如vue-router:使用他人组件的正常步骤如下: 1.命令行进行安装,执行install: 2.在vue项目中的入口文件main.js中,进 ...
- 小程序之修改引用的vant组件样式(包括自定义组件中的vant样式)
今天在写小程序的时候,刚好遇到,以前遇到解决了之后忘记记录,今天记录下! 一般组件的基础样式会跟ui设计稿有些出入,就得改动! 使用vant的话,官方就有提供方法,比如复选框 我在项目中用custom ...
- java flowlayout 左对齐_Java Swing组件布局管理器之FlowLayout(流式布局)入门教程
本文实例讲述了Java Swing组件布局管理器之FlowLayout(流式布局).分享给大家供大家参考,具体如下: FlowLayout应该是Swing布局管理器学习中最简单.最基础的一个.所谓流式 ...
- java的构造函数格式_java – 自定义MapReduce输入格式 – 找不到构造函数
我正在为Hadoop 0.20.2编写一个自定义的InputFormat,并且遇到NoSuchMethodException我无法摆脱.我开始时: public class ConnectionInp ...
- java注解获取参数_JAVA 自定义注解及参数获取 | 学步园
package com.java.annotation; import java.lang.annotation.*; /** * Created by lw on 14-5-30. * 自定义注解 ...
最新文章
- 手机视频直播解决方案
- 如何理解delegate (委托)设计模式
- 第四届“传智杯”全国大学生IT技能大赛(决赛B组)【题解】
- QT的QMediaPlaylist类的使用
- 最小值c语言 循环,C语言循环结构
-C语言求全班同学身高的最大值和最小值
- [Jobdu] 题目1527:首尾相连数组的最大子数组和
- 关于职场的6个深刻道理,每个都是血泪教训换来的,你一定要懂
- 灰常好的开源项目[c/c++]
- 椭圆曲线形式下的Pedersen commitment——vector commitment和polynomial commitment
- 20155201李卓雯 20155212江振思 20155313杨瀚《信息安全技术》 实验三 数字证书应用...
- 如何进行邮件营销,邮件营销群发是否有效?
- 织梦dedecms 内容管理系统模板标签代码参考
- [b2g] firefoxOS 移植记录
- 对“主数据”的一点吐槽
- 你对Web3的迅速发展一无所知,逃离大厂去拥抱Web3
- 计算机组成原理MVRD,计算机组成原理实验
- 情侣的网站代码java_java版给爱人表白祝福的小项目
- Google APAC 2016 University Graduates Test Practice Round APAC test
- org.apache.mina.core.RuntimeIoException: Failed to get the session 异常可能出现的原因
- java new date 减一天_java日期增加一个月或减少一天
热门文章
- Nginx设置本地浏览器缓存
- 每天九点十分开始每半小时一次执行一个cron_趣讲 PowerJob 超强大的调度层,开始表演真正的技术了...
- uml+oopc嵌入式c语言开发精讲_当前火爆的嵌入式领域,为什么选择C语言作为开发语言?了解一下...
- 网传一些著名互联网公司的实习工资,某节真的香啊
- try catch 有多烦人,我就有多暴躁!一次搞定 Exception ^ ^
- Eclipse中JSP默认模板修改:设置编码为UTF-8以及导入JSTL等
- 杭电1280java实现
- 自定义eclipse启动画面
- 利用cookie显示上次浏览的时间
- Wireshark软件的安装,进行数据包的捕获【Wireshark安装使用】