moin
ich hab ma wieder nen kleines problem... unten hab ich mal nen kleines beispielprogramm zu geschrieben das das verdeutlichen soll...
also folgendes problem:
ich hab nen fenster das 3 geteilt ist ..
norden und süden sind für statusleisten vorbeihalten
in der mitte soll auf einem jscrollpane nen bild angezeigt werden
- dieses soll mittig angezeigt werden und das scrollpane soll sich wenn das bild größer ist entsprechend anpassen
^^ das ist eigentlich kein problem, aber
ich möchte das das label auch nur so groß ist wie das bild auch wenn das bild kleiner ist als das scrollpane und
genau das geht net...
^^ also so ungefähr soll es aussehen (das wichtige das label (bild) ist mittig zentriert und hat auch einen abstand zu dem rand...
wäre dankbar für eure hilfe
Kala
ich hab ma wieder nen kleines problem... unten hab ich mal nen kleines beispielprogramm zu geschrieben das das verdeutlichen soll...
also folgendes problem:
ich hab nen fenster das 3 geteilt ist ..
norden und süden sind für statusleisten vorbeihalten
in der mitte soll auf einem jscrollpane nen bild angezeigt werden
- dieses soll mittig angezeigt werden und das scrollpane soll sich wenn das bild größer ist entsprechend anpassen
^^ das ist eigentlich kein problem, aber
ich möchte das das label auch nur so groß ist wie das bild auch wenn das bild kleiner ist als das scrollpane und
genau das geht net...

^^ also so ungefähr soll es aussehen (das wichtige das label (bild) ist mittig zentriert und hat auch einen abstand zu dem rand...
wäre dankbar für eure hilfe
Kala
Code:
import java.awt.BorderLayout;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.border.BevelBorder;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import java.awt.Color;
public class DlgSPTest extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanelNorth = null;
private JPanel jPanelCenter = null;
private JPanel jPanelSouth = null;
private JButton jButtonLaden = null;
private JButton jButtonExit = null;
private BufferedImage saveImg = null;
private String loadpfad=""; // @jve:decl-index=0:
private JScrollPane jScrollPaneMuster = null;
private JLabel jLabelMuster = null;
/**
* This is the default constructor
*/
public DlgSPTest() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(700, 600);
this.setContentPane(getJContentPane());
this.setTitle("ScrollPaneTest");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanelNorth(), BorderLayout.NORTH);
jContentPane.add(getJPanelCenter(), BorderLayout.CENTER);
jContentPane.add(getJPanelSouth(), BorderLayout.SOUTH);
}
return jContentPane;
}
/**
* This method initializes jPanelNorth
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelNorth() {
if (jPanelNorth == null) {
jPanelNorth = new JPanel();
jPanelNorth.setLayout(new FlowLayout());
jPanelNorth.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
jPanelNorth.add(getJButtonLaden(), null);
}
return jPanelNorth;
}
/**
* This method initializes jPanelCenter
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelCenter() {
if (jPanelCenter == null) {
jPanelCenter = new JPanel();
jPanelCenter.setLayout(new BorderLayout());
jPanelCenter.add(getJScrollPaneMuster(), BorderLayout.CENTER);
}
return jPanelCenter;
}
/**
* This method initializes jPanelSouth
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelSouth() {
if (jPanelSouth == null) {
jPanelSouth = new JPanel();
jPanelSouth.setLayout(new FlowLayout());
jPanelSouth.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
jPanelSouth.add(getJButtonExit(), null);
}
return jPanelSouth;
}
/**
* This method initializes jButtonLaden
*
* @return javax.swing.JButton
*/
private JButton getJButtonLaden() {
if (jButtonLaden == null) {
jButtonLaden = new JButton();
jButtonLaden.setText("Laden");
jButtonLaden.setPreferredSize(new Dimension(100, 30));
jButtonLaden.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
File eximFile = null;
String pfad="images";
JFileChooser fileChooser = new JFileChooser(new File(pfad));
int state = fileChooser.showOpenDialog(null);
if ( state==JFileChooser.APPROVE_OPTION ) {
eximFile = fileChooser.getSelectedFile();
loadpfad=eximFile.getPath();
jLabelMuster.setIcon(loadImage(loadpfad));
}
}
});
}
return jButtonLaden;
}
private ImageIcon loadImage(String pfad){
File f = new File(pfad);
try {
saveImg = ImageIO.read(f);
}
catch (IOException ex) {
System.out.println(ex.toString());
}
ImageIcon img = new ImageIcon(saveImg);
return img;
}
/**
* This method initializes jButtonExit
*
* @return javax.swing.JButton
*/
private JButton getJButtonExit() {
if (jButtonExit == null) {
jButtonExit = new JButton();
jButtonExit.setPreferredSize(new Dimension(100, 30));
jButtonExit.setText("Exit");
jButtonExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.exit(0);
}
});
}
return jButtonExit;
}
/**
* This method initializes jScrollPaneMuster
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPaneMuster() {
if (jScrollPaneMuster == null) {
jLabelMuster = new JLabel();
jLabelMuster.setText("");
jLabelMuster.setBorder(BorderFactory.createLineBorder(Color.green, 1));
jLabelMuster.setHorizontalAlignment(JLabel.CENTER);
jScrollPaneMuster = new JScrollPane();
jScrollPaneMuster.setViewportView(jLabelMuster);
}
return jScrollPaneMuster;
}
}