如何将这个图像像下面的图像放到slavePanel中,并且在该JPanel的顶部调整看起来像图像但按钮正确包装的JButton? (现在他们被塑造成1排4列)

//

// Shot Gun mover up/down/left/right, middle on is for zoom

//

public void GunMover(JPanel configPanel) throws IOException {

// Master Panel - holds everything

JPanel masterPanel = new Panel();

masterPanel.setLayout(new SpringLayout());

// Slave Panel - with image background

JPanel slavePanel = new Panel();

slavePanel.setLayout(new SpringLayout());

// Row 1

final JButton ptzLeft = new JButton("

masterPanel.add(ptzLeft, BorderLayout.WEST);

// Row 2

final JButton ptzRight = new JButton(">");

masterPanel.add(ptzRight, BorderLayout.CENTER);

// Row 3

final JButton ptzUp = new JButton("^");

masterPanel.add(ptzUp, BorderLayout.WEST);

// Row 4

final JButton ptzDown = new JButton("down");

masterPanel.add(ptzDown, BorderLayout.CENTER);

// How do i add slavePanel this background and add all the JButtons

// According to that image shape?

// Layout the panel.

SpringUtilities.makeCompactGrid(masterPanel,

1, 4, //rows, cols

6, 6, //initX, initY

6, 6);

configPanel.setLayout(new GridLayout(0,1));

configPanel.add(masterPanel);

}

跟进:来自安德鲁·汤普森(Andrew Thompson)的优秀人物,至少是我破碎的方法

package test;

import java.awt.*;

import java.awt.font.FontRenderContext;

import java.awt.font.TextLayout;

import javax.swing.*;

public class New extends JFrame {

private static final long serialVersionUID = 1L;

private ImageIcon errorIcon =

(ImageIcon) UIManager.getIcon("OptionPane.errorIcon");

private Icon infoIcon =

UIManager.getIcon("OptionPane.informationIcon");

private Icon warnIcon =

UIManager.getIcon("OptionPane.warningIcon");

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

New t = new New();

}

});

}

public New() {

setLayout(new BorderLayout());

JPanel slavePanel = new NewPanel();

slavePanel.setLayout(new GridLayout(0, 2, 4, 4));

add(slavePanel);

JButton button = new JButton();

button.setBorderPainted(false);

button.setBorder(null);

button.setFocusable(false);

button.setMargin(new Insets(0, 0, 0, 0));

button.setContentAreaFilled(false);

button.setIcon((errorIcon));

button.setRolloverIcon((infoIcon));

button.setPressedIcon(warnIcon);

button.setDisabledIcon(warnIcon);

slavePanel.add(button);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

pack();

setVisible(true);

}

}

package test;

import java.awt.*;

import java.io.IOException;

import java.io.InputStream;

import javax.imageio.ImageIO;

import javax.swing.*;

import javax.swing.border.Border;

public class NewPanel extends JPanel {

private Image imageGui;

private static Dimension screen;

public NewPanel() {

try {

imageGui =

ImageIO.read(

(InputStream) NewPanel.class.getResourceAsStream(

"/image/ptz.png"));

} catch (IOException e) {

e.printStackTrace(System.err);

}

Border border = BorderFactory.createEmptyBorder(11, 11, 11, 11);

setOpaque(true);

setBorder(border);

setFocusable(true);

setSize(getPreferredSize());

revalidate();

repaint();

setVisible(true);

}

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(imageGui, 0, 0,

imageGui.getWidth(null), imageGui.getHeight(null), null);

revalidate();

repaint();

}

@Override

public Dimension getPreferredSize() {

return new Dimension(imageGui.getWidth(null), imageGui.getHeight(null));

}

}

java面板中添加面板_java – 在面板中添加一个复杂的图像,在一个定制的用户界面中使用按钮...相关推荐

  1. java 发送邮件添加附件_java邮件自动发送时添加网络附件

    查了很多资料都是使用本地资源作为附件发送.但是数据和程序分开时,还需要先下载数据,保存到本地再发送邮件.查了很多资料后,发现apach提供了很好的一个commons-mail.jar包,做了很好的封装 ...

  2. java 替换多个字符串_Java一次(或以最有效的方式)替换字符串中的多个不同子字符串...

    小编典典 如果你要处理的字符串很长,或者你要处理许多字符串,那么使用java.util.regex.Matcher可能是值得的(这需要花很长时间进行编译,因此效率不高) (如果你的输入很小或搜索模式经 ...

  3. java 各组件单击总数_java 获取面板上有多少个组件

    展开全部 import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java ...

  4. 如何在java中添加照片_Java如何将图片添加到PPT幻灯片中?

    在Java编程中,如何将图片添加到PPT幻灯片中? 注意:需要访问网址: , 下载一个Apache POI软件包.这里下载最新版本:poi-bin-3.17-20170915.tar.gz解压并全部导 ...

  5. java jtable 复选框_java swing如何在JTable一个单元格添加多个复选框

    展开全部 java swing中在jTable中添加多个复选框的方32313133353236313431303231363533e59b9ee7ad9431333337616566式如下:impor ...

  6. java 添加附件_java发送邮件(一)--补充添加附件

    今天来记录一下如何使用java来发送邮件 背景 之前项目有个需求,当产品出现故障时会把情况上送给服务器,服务器发送邮件将故障产品的位置以及故障信息等告知维修人员.发送邮件的接口不是我负责的,但是有兴趣 ...

  7. java 文件移动文件夹_java移动文件到另一个文件夹中

    今天下载了好多视频文件都放在了F:盘中,由于F盘的视频文件比较多,而且存放的每个文件夹中都有,于是我就想把所有的视频文件重新整理放到一个新的文件夹中. 由于本人比较懒,不想手动操作,感觉自己的动手的话 ...

  8. java添加边框_Java如何为边框添加标题?

    本示例说明如何创建带有标题的边框.有一个特殊的边界类TitledBorder可以做到这一点.我们可以定义标题的对齐方式,左对齐,居中对齐或右对齐.为此,我们调用该setTitleJustificati ...

  9. java更好的语言_Java,如果这是一个更好的世界

    java更好的语言 只是梦想着有一个更好的世界,在该世界中,Java平台中的一些旧错误已得到纠正,而某些令人敬畏的缺失功能也已实现. 不要误会我的意思. 我认为Java很棒. 但是它仍然存在一些问题, ...

最新文章

  1. 虚拟化如何做实?详解戴尔2.0版解决方案
  2. 构建生产机器学习系统的一些考虑
  3. Enterprise Library之错误处理部分
  4. python画柱形图-Python绘制柱状图
  5. 物联网将迎丛林时代 细数物联网八大发展模式
  6. Quartus II 15.0详细安装步骤
  7. 5 篇 AAAI 2018 论文看「应答生成」
  8. mysql文本自动递增_mysql-如何创建自动递增的字符串?
  9. [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
  10. mysql alter table_mysql alter table 修改表命令详细介绍
  11. linux发布微软消息队列,消息队列RabbitMQ入门与5种模式详解
  12. 清华大学计算机网络体系结构,清华大学计算机网络体系结构讲义ch32(OSPF).pdf
  13. Get Intellisense for .axml files in Visual Studio
  14. 表单提交中文时出现乱码的问题
  15. azw3文件怎么打开?
  16. nmbd samba中文
  17. w10不能访问网络计算机,今天解答win10无法访问局域网电脑的详尽解决举措
  18. matlab ecu代码,嵌入式代码生成 - 汽车 ECU 产品级代码 - MATLAB Simulink
  19. html2txt noblank.c
  20. 为什么不喜欢人工智能建筑设计?

热门文章

  1. C语言课后习题(25)
  2. CS229——线性回归
  3. 资源放送丨《基于IB网络的Oracle Extend RAC最佳实践》PPT视频
  4. 2020年11月国产数据库排行: PingCAP融资破记录,PolarDB登云巅,达梦南大壮心雄
  5. 数据库流行度8月排行榜:Oracle 飙升 和 PostgreSQL 绝尘领跑第二梯队
  6. IoT平台如何实现业务配置中心
  7. 看FusionInsight Spark如何支持JDBCServer的多实例特性
  8. 基于深度神经网络的噪声标签学习
  9. 仅4步,就可通过SQL进行分布式死锁的检测与消除
  10. 乘风破浪,云服务器为电商大促加足“马力”