早上好,我正在尝试制作这样的图形用户界面:
我希望图像有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);
}`
如果有人可以帮助我,我将不胜感激。
谢谢
答案 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让用户选择一个文件。