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

如何将这个图像像下面的图像放到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));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值