JScrollPane in den Code einbauen

tomovic

Bekanntes Mitglied
hallo,
ich habe ein Quellcode gefunden, mit dem man ein jpg öffnen kann. Über 2 Button ist es dann möglich zu zoomen. Leider ist es so, dass mir noch der JScrollPane fehlt, sobald das Bild übergröße bekommt, kann ich nicht scollen.

Java:
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.ImageObserver;

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

class Zoom extends Canvas implements ImageObserver {
  Image img;
  int iw;
  int ih;
  int x;
  int y;
  int adjX = 0;
  int adjY = 0;
  int adjW = 0;
  int adjH = 0;
  Dimension ds;
  
  Zoom() {
    img = getToolkit().getImage("c://1.jpg");
    ds = getToolkit().getScreenSize();
  }
  
  @Override
  public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    setImageBounds();
    g2d.translate(x, y);
    g2d.drawImage(img, 0, 0, iw, ih, this);
    
  }
  
  public void setImageBounds() {
    x = (int) ds.getWidth() / 2 - img.getWidth(this) / 2 + adjX;
    y = (int) ds.getHeight() / 2 - img.getHeight(this) / 2 + adjY;
    iw = img.getWidth(this) + adjW;
    ih = img.getHeight(this) + adjH;
  }
  
  public void zoomIn() {
    adjX -= 10;
    adjY -= 10;
    adjW += 20;
    adjH += 20;
  }
  
  public void zoomOut() {
    if (x < (int) ds.getWidth() / 2 - img.getWidth(this) / 2) {
      adjX += 10;
      adjY += 10;
      adjW -= 20;
      adjH -= 20;
    }
  }
}

class MainInter extends JFrame implements ActionListener {
  JButton btZoomIn;
  JButton btZoomOut;
  JPanel panel;
  Zoom z;
  
  MainInter() {
    setTitle("Image zoom");
    // //////////////////////////////////// ab hier.....
    z = new Zoom();
    add(z, BorderLayout.CENTER);
    // ///////////////////////////////////// bis hier will ich den Code
    // verändern.
    btZoomIn = new JButton("+");
    btZoomIn.addActionListener(this);
    btZoomOut = new JButton("-");
    btZoomOut.addActionListener(this);
    btZoomOut.setOpaque(false);
    
    panel = new JPanel();
    panel.setLayout(new FlowLayout());
    panel.add(btZoomIn);
    panel.add(btZoomOut);
    add(panel, BorderLayout.SOUTH);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
    setVisible(true);
  }
  
  @Override
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btZoomIn) {
      z.zoomIn();
      z.repaint();
    } else if (e.getSource() == btZoomOut) {
      z.zoomOut();
      z.repaint();
    }
  }
}

public class ImageZoom {
  public static void main(String args[]) {
    new MainInter();
  }
}


Laut Java Buch:
Java:
JLabel label = new JLabel(new ImageIcon("test.jpg"));
JScrollPane left = new JScrollPane(label);
left.setPreferredSize(new Dimension(200,200));
....

Meine Idee:

Java:
z=new Zoom();
JScrollPane left = new JScrollPane(z);
add(left,BorderLayout.CENTER );

Aber irgend wie haut das nicht hin :-(
 
Zuletzt bearbeitet von einem Moderator:

tomovic

Bekanntes Mitglied
trotzdem mal danke.

Bei dem großen Quellcode (vom Internet) wird erst das Fenster generiert UND später das jpg geladen, laut meinem java Buch muss ich erst das jpg in ein Label laden, dann im JScrollPane das Label reinstecken und dann bau sich das Fenster auf.

Ich weis nicht wie ich JScrollPane in den grossen Quellcode (vom Internet ) einbauen kann?

Ich hoffe du verstehst was ich meine :)
 

kaoZ

Top Contributor
Ich hoffe du verstehst was ich meine

öhm....jein.....

Java:
import java.awt.BorderLayout;
import java.awt.Image;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;



public class Foo extends JPanel{
	
	JLabel label;
	JScrollPane pane;
	Image image;
	
	public Foo() throws FileNotFoundException, IOException{
		
		setLayout(new BorderLayout());  // <---
		
		image = ImageIO.read(new FileInputStream(new File("F:/Bilder/Mask.png")));
		label = new JLabel(new ImageIcon(image));
		pane = new JScrollPane(label);
		
		add(pane);
	}
	
	public static void main(String[] args) throws FileNotFoundException, IOException{
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		f.setContentPane(new Foo());
		f.setSize(250,250);
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}
}

Was für ein layoutmanager hat der container dem du das Scrollpane hinzufügst ?

Ich weis nicht wie ich JScrollPane in den grossen Quellcode (vom Internet ) einbauen kann?

Der Große Quelltext also xD

Ich muss leider stark vermuten das dir so ziemliche Grundlagen fehlen , darum frage ich mich warum du dich mit Grafischer (Gui) Programmierung beschäftigen möchtest ?!
 
Zuletzt bearbeitet:

tomovic

Bekanntes Mitglied
ok,thx.
Grundlagen naja :)

Ich habe einen kompletten synthesizer in java gebau (nicht alles ist auf meinem Mist gebau).
Bei der Grafik gestalten tute mich noch schwer.Ich code immer so weit wie möglich, dann nutze ich das Forum.

Kannst du nur bitte den zusammenhang kurz erklären.
Ich bekomme leider die Pussel nicht zusammen.
 

arilou

Bekanntes Mitglied
Du solltest dich dringend darüber schlau machen, was ein LayoutManager ist.
Bevor du viel Zeit in die GUI investierst - ansonsten musst du später alles nochmal umbauen.
Und nein, es ist keine gute Idee, das Fenster "genau so festzulegen, wie ich es will" - denn so schreibt man keine Programme, die sowohl auf einem Smartphone, als auch auf einem Tablet, einem Desktop-PC und einem 60-Zoll-4k-Monitor funktionieren, bei Schriftgrößen von 50% bis 400% ...

(Mit LayoutManagern geht es ganz komfortabel, dass das Programm sich später vollautomatisch anpasst, und es ist nicht viel Mehraufwand beim Programmieren...)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
M JScrollPane scrollt nicht Java Basics - Anfänger-Themen 2
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
A JScrollPane nicht sichtbar Java Basics - Anfänger-Themen 5
S JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 6
N jScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 13
L Jscrollpane nach zoomen anpassen Java Basics - Anfänger-Themen 20
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
T JScrollPane: Slider programmgesteuert verschieben? Java Basics - Anfänger-Themen 4
Kenan89 JScrollPane, aber kein Scrollbalken Java Basics - Anfänger-Themen 4
T JScrollPane funktioniert nicht Java Basics - Anfänger-Themen 7
D jScrollPane Problem Java Basics - Anfänger-Themen 16
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
A Button das JScrollPane aktualisiert Java Basics - Anfänger-Themen 11
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
T JScrollPane resized nicht richtig... Java Basics - Anfänger-Themen 4
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
O JScrollPane , JScrollBar Java Basics - Anfänger-Themen 3
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
T JScrollPane soll rechts gescrollt gezeichnet werden Java Basics - Anfänger-Themen 5
P JScrollPane Java Basics - Anfänger-Themen 18
J JScrollPane, Regler-Problem Java Basics - Anfänger-Themen 3
J JScrollPane swing Java Basics - Anfänger-Themen 8
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H2SO3- JScrollPane will nicht scrollen Java Basics - Anfänger-Themen 3
_deleted Mehrere Panels untereinander im JScrollPane Java Basics - Anfänger-Themen 4
J JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 4
A JScrollPane aktualisiert nicht Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
S JScrollPane und JPanel Java Basics - Anfänger-Themen 2
J JScrollBar JScrollPane Java Basics - Anfänger-Themen 9
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 7
M Probleme mit JScrollPane Java Basics - Anfänger-Themen 5
G JScrollPane Java Basics - Anfänger-Themen 5
S JScrollPane: Scrollbalken werden nicht angezeigt Java Basics - Anfänger-Themen 4
P Brauche Hilfe für JPanel im JScrollPane und Abstände Java Basics - Anfänger-Themen 2
M VisualEditor, Jlist und JScrollPane Java Basics - Anfänger-Themen 9
M JScrollPane soll inhalt zentrieren Java Basics - Anfänger-Themen 3
C Automatischer Umbruch bei JScrollPane? Java Basics - Anfänger-Themen 5
G JScrollPane + JTable + Autoscroll uvm. Java Basics - Anfänger-Themen 5
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
I Autoscrolling im JScrollPane Java Basics - Anfänger-Themen 3
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
lin JScrollPane & OutOfMemoryError Java Basics - Anfänger-Themen 6
G JScrollPane in der Größe bestimmen Java Basics - Anfänger-Themen 11
R JScrollpane problem Java Basics - Anfänger-Themen 21
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 4
G Probleme mit JScrollPane Java Basics - Anfänger-Themen 3
M JScrollPane: Autoscroll Java Basics - Anfänger-Themen 14
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64

Ähnliche Java Themen

Neue Themen


Oben