问题描述
我正在开发一个 Swing 应用程序,其中有一个带有不同选项的菜单,应用程序根据该菜单显示一个图像,该图像包含在另一个 JScrollPane
的 JPanel
中。
最后当你双击图像时,出现关于图像的描述。
我的问题是,当我单击按钮时,会出现 ScrollPaint,但不加载图像。
这是我的代码:
VentanaPrincipal
public class VentanaPrincipal extends JFrame {
public VentanaPrincipal() {
super();
setTitle("Formulario de Reservas – Manuel Lucas Sánchez");
createMenu();
initsComponents(); // Here I setUp the components.
}
public void cargaPanel(JPanel panel,String ruta) {
scrollPane.setVisible(true);
scrollPane.setViewportView(panel);
pFoto = new PanelFoto(ruta);
scrollPane.add(pFoto);
}
public PanelFoto getpFoto() {
return pFoto;
}
public void setControlador(Controlador controlador) {
mntmhbdoble.addActionListener(controlador);
mntmhbPresidencial.addActionListener(controlador);
mntmhbSimple.addActionListener(controlador);
mntmhbSuite.addActionListener(controlador);
mntmhbSuperior.addActionListener(controlador);
mntmSalir.addActionListener(controlador);
mntmseGym.addActionListener(controlador);
mntmsePisc.addActionListener(controlador);
mntmseRest.addActionListener(controlador);
}
}
PanelFoto
public class PanelFoto extends JPanel {
private Image img;
private JTextArea txtAreaDescripcion;
private JScrollPane conteinerFoto;
private JLabel imageLabel;
private ImageIcon ii;
public PanelFoto(String ruta) {
initsComponents(ruta);
}
public PanelFoto() {
}
private void initsComponents(String ruta) {
setSize(550,600);
setLayout(null);
/*
ImageIcon ii = new ImageIcon(file_path);
jScrollPane1 = new JScrollPane(new JLabel(ii));*/
txtAreaDescripcion = new JTextArea();
txtAreaDescripcion.setBounds(0,449,550,151);
add(txtAreaDescripcion);
ii = new ImageIcon(ruta);
conteinerFoto = new JScrollPane(new JLabel(ii));
conteinerFoto.setBounds(0,449);
add(conteinerFoto);
}
public JTextArea getTxtAreaDescripcion() {
return txtAreaDescripcion;
}
public JScrollPane getConteinerFoto() {
return conteinerFoto;
}
public void setControlador(Controlador controlador) {
this.addMouseListener((MouseListener) controlador);
}
public Image getImg() {
return img;
}
public void setImg(Image img) {
this.img = img;
}
}
控制者
public class Controlador implements ActionListener,MouseListener {
private VentanaPrincipal vPrincipal;
private PanelFoto pFoto;
public Controlador(VentanaPrincipal vPrincipal,PanelFoto pFoto) {
this.vPrincipal=vPrincipal;
this.pFoto=pFoto;
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() instanceof JMenu || ae.getSource() instanceof JMenuItem) {
if(((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_HABSIMPLE)) {
vPrincipal.cargaPanel(pFoto,"img/simple.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("Superficie de la habitacion: 20 metros\n" +
"Ducha\n" +
"Toallas\n" +
"Secador de pelo\n" +
"TV\n" +
"Politica de humo: no se puede fumar\n" +
"");
}
}
});
Image img = null;
try {
img = ImageIO.read(new File("img/simple.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_HABdobLE)) {
vPrincipal.cargaPanel(pFoto,"img/doble.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("Superficie de la habitacion: 30 m\n" +
"Ducha \n" +
"Toallas y albornoces\n" +
"Secador de pelo\n" +
"TV LED\n" +
"Dos camas dobles");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/doble.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_HABSUITE)) {
vPrincipal.cargaPanel(pFoto,"img/suite.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("Superficie de la habitacion: 50 metros\n" +
"Banera hidromasaje\n" +
"Todo tipo de amenities\n" +
"Caja fuerte\n" +
"Terraza vistas mar\n" +
"Cama King Size");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/suite.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_HABPRESI)) {
vPrincipal.cargaPanel(pFoto,"img/presidencial.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("Superficie de la habitacion: 90 metros\r\n" +
"SPA privado\r\n" +
"Servicio de habitacion personal\r\n" +
"Jardin privado con piscina\r\n" +
"HomeCinema\r\n" +
"Cama King Size");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/presidencial.jpg"));
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_SERREST)) {
vPrincipal.cargaPanel(pFoto,"img/restaurante.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("El ambiente informal y acogedor de nuestro restaurante esta decorado con un estilo mediterraneo moderno. Pruebe una especialidad local o internacional acompañado de un te JING o de un vino fino. La tranquila terraza es ideal para realizar eventos sociales y fiestas con cocteles.");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/restaurante.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_SERPISC)) {
vPrincipal.cargaPanel(pFoto,"img/spa.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("Nuestro spa es un lugar para relajarse y beneficiarse de las propiedades del agua mineromedicinal en sus confortables e innovadoras instalaciones. Nuestro equipo trabaja en la incorporacion de las mejores tecnicas,combinadas con la aplicacion de nuestras aguas mineromedicinales y productos cosmeticos de alta gama,para crear tratamientos unicos para nuestros clientes.\r\n" +
"");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/spa.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_SERGYM)) {
vPrincipal.cargaPanel(pFoto,"img/gym.jpg");
vPrincipal.getpFoto().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(vPrincipal.getpFoto())) {
vPrincipal.getpFoto().getTxtAreaDescripcion().setText("El gimnasio del hotel loving Java pone a su disposicion todas sus maquinas de ultima generacion:\r\n" +
"Cintas de correr\r\n" +
"Elipticas\r\n" +
"Bicicletas estaticas\r\n" +
"Piscina climatizada\r\n" +
"Maquinas de musculacion.");
}
}
});
Image Img = null;
try {
Img = ImageIO.read(new File("img/gym.jpg"));
} catch (IOException e) {
e.printstacktrace();
}
//ImageIcon ImgIcon = new ImageIcon(Img);
pFoto.setImg(Img);
}else if (((JMenuItem) ae.getSource()).getText().equals(VentanaPrincipal.MNTM_SALIR)) {
vPrincipal.confirmarSalida();
}
}else if (ae.getSource() instanceof JButton) {
}else if (ae.getSource() instanceof JTextField) {
if(ae.getSource().equals(vPrincipal.getTxtNombre())) {
if(vPrincipal.getTxtNombre().getText().length()<3) {
vPrincipal.getTxtNombre().setBackground(Color.RED);
}
}else if (ae.getSource().equals(vPrincipal.getTxtApellidos())) {
if(vPrincipal.getTxtApellidos().getText().length()<3) {
vPrincipal.getTxtApellidos().setBackground(Color.RED);
}
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(pFoto)) {
pFoto.getTxtAreaDescripcion().setVisible(true);
pFoto.getTxtAreaDescripcion().setEnabled(true);
pFoto.getTxtAreaDescripcion().setEditable(false);
pFoto.getTxtAreaDescripcion().setText("Descripcion prueba.");
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mousepressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
}
Iniciarapp
public class Inciarapp {
public static void main(String[] args) {
EventQueue.invokelater(new Runnable() {
@Override
public void run() {
VentanaPrincipal vPrincipal = new VentanaPrincipal();
PanelFoto pFoto = vPrincipal.getpFoto();
Controlador controlador = new Controlador(vPrincipal,pFoto);
vPrincipal.setControlador(controlador);
pFoto.setControlador(controlador);
vPrincipal.hacerVisible();
}
});
}
}
我希望你能帮忙,在这种情况下,提前感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)