Ich möchte das Image scaled2 in meinem Frame gerne im "Center" öffnen. Jedoch überschreibt die paint() Methode mein Fenster, dass die Bedienelemente verschwinden.
Meine erste Idee/Frage wäre, wie ich das Image z.B. in JPane p3 öffnen kann? Dies kann ich dann ja dem Layout entsprechend zufügen.
Idee2 wäre, das Fenster zu aktualisieren, da sich die Bedienelemente ja im Hintergrund befinden.
Nebensächliche Frage: Ließe sich das Ganze mit dem JBuilder oder ähnlichem einfacher Handhaben?
Meine erste Idee/Frage wäre, wie ich das Image z.B. in JPane p3 öffnen kann? Dies kann ich dann ja dem Layout entsprechend zufügen.
Idee2 wäre, das Fenster zu aktualisieren, da sich die Bedienelemente ja im Hintergrund befinden.
Nebensächliche Frage: Ließe sich das Ganze mit dem JBuilder oder ähnlichem einfacher Handhaben?
Code:
import java.awt.*;
import javax.swing.*;
public class MedianFilterGui extends JPanel
{
JButton start;
JLabel inputLabel, outputLabel, pixelLabel, timeLabel, inputBild, outputBild;
JTextField inputField, outputField, timeField, pixelField;
JFrame fenster;
JButton go;
Image image, scaled2;
public MedianFilterGui()
{
fenster = new JFrame();
setLayout (new BorderLayout());
go = new JButton ("start");
inputLabel = new JLabel ("Eingabedatei:");
outputLabel = new JLabel ("Ausgabedatei:");
pixelLabel = new JLabel ("Anzahl der umliegenden Pixel: ");
timeLabel = new JLabel ("benötigte Zeit:");
inputField = new JTextField (20);
outputField = new JTextField (20);
pixelField = new JTextField (5);
timeField = new JTextField (10);
Icon ic = new ImageIcon("bild1.jpg");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
p1.setLayout(new GridLayout(2,4,10,10));
p1.add(inputLabel);
p1.add(inputField);
p1.add(outputLabel);
p1.add(outputField);
p1.add(pixelLabel);
p1.add(pixelField);
p1.add(go);
add("North",p1);
p2.setLayout(new GridLayout(1,2,10,10));
p2.add(timeLabel);
p2.add(timeField);
add("South",p2);
p3.setLayout(new FlowLayout());
add("Center",p3);
image = Toolkit.getDefaultToolkit().getImage( "bild.jpg" );
scaled2 = image.getScaledInstance(
Toolkit.getDefaultToolkit().getScreenSize().width / 4,
Toolkit.getDefaultToolkit().getScreenSize().height / 4,
Image.SCALE_SMOOTH );
if ( image != null )
repaint();
}
public void paint( Graphics g )
{
if ( image != null )
{
g.drawImage( scaled2, 10, 100, this );
}
}
public static void main (String[] args)
{
JFrame fenster = new JFrame("Median Filter");
fenster.getContentPane().add(new JScrollPane(new MedianFilterGui()));
fenster.setSize(1000,600);
fenster.setVisible(true);
}
}