图形界面java为图像插入空间

时间:2014-12-28 14:56:03

标签: java image swing user-interface graphics

早上好,我正在尝试制作这样的图形用户界面:

enter image description here

我希望图像有3个空格,每个空白区域下方有一个选择和加载图像的按钮。我一直在阅读教程等等,使用paintingComponent等,但我不知道如何制作这些空格和按钮,并打开一个窗口,当我们点击加载时,你可以从计算机中选择图像。

我写了这个:

package projet;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FrameIM extends JFrame{

/**
 * 
 */
private static final long serialVersionUID = -7538888128782793269L;
private static final int width = 700;
private static final int height = 500;

public FrameIM(){
    //window
    this.setTitle("Mutual information");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setSize(width, height);

    //boutons
    JButton boutonLoad1 = new JButton("Load image A");
    JButton boutonLoad2 = new JButton("Load image B");
    JButton boutonProcess = new JButton("Processing Mutual information");

    //layout des boutons
    this.setLayout(new BorderLayout(0, 200));
    //ajout des boutons
    this.getContentPane().add(boutonLoad1, BorderLayout.WEST);
    this.getContentPane().add(boutonLoad2, BorderLayout.CENTER);
    this.getContentPane().add(boutonProcess, BorderLayout.EAST);
    this.setVisible(true);

}`

如果有人可以帮助我,我将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:3)

要使用按钮执行操作,您需要实现ActionListener界面,例如:

//boutons
    JButton boutonLoad1 = new JButton("Load image A");
    boutonLoad1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("button 1 is pressed");
        }
    });
    ... do same with your other buttons

根据您的原型图片,您需要使用layouts。我会给你指示,正如我想象的那样,可以用Grid Layout完成,以达到你的需要:

使用BoxLayout创建主要JPanel并将其设置为Y_AXIS,最后将其添加到ContentPane

JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.setBorder(new EmptyBorder(10, 10, 10, 10));

现在,您将在主面板中创建并添加另外三个面板:

您的第一个(北)面板将包含您的标签:

int rows = 0;
int cols = 3;
int hgap = 5; 
int vgap = 0;
JPanel first = new JPanel(new GridLayout(rows,cols,hgap,vgap));

您的第二个(中间)面板将包含您的图片:

int rows = 0;
int cols = 3;
int hgap = 10;
int vgap = 10;
JPanel second = new JPanel(new GridLayout(rows,cols,hgap,vgap));

包含按钮的第三(南)面板将是:

int rows = 0;
int cols = 3;
int hgap = 5;
int vgap = 0;
JPanel third = new JPanel(new GridLayout(rows,cols,hgap,vgap));

答案 1 :(得分:0)

要在按下按钮时执行操作,您需要添加ActionListener。在那里,你可以打开FileDialog让用户选择一个文件。