MalProgramm mit JScrollPane und Canvas

Phtevenz

Mitglied
Hallo zusammen,


ich möchte um meine Java Kenntnisse zu verbessern ein Malprogramm machen. Da ich keine konkrete Vorstellung habe, habe ich einfach drauf los programmiert.

Bisher funktioniert alles super, bin eigentlich zufrieden. Habe viele Sachen gelernt und konnte es direkt einbauen. Einige Sachen stören mich dennoch:

1 : Wenn ich etwas male und dann verschiebe mit den Slidern dann sieht das nicht richtig aus, das Canvas wird "über" andere Sachen drüber geschoben und die Sachen werden erst wieder sichtbar wenn ich einen Punkt male.

2 : Das Programm fängt stark zu ruckeln an wenn ich mehrere Sachen male und verschiebe, irgendetwas stimmt doch nicht??

edit:
3. Ich benutze für die GUI den WindowBuilder. Irgendwie ist das was ich in der Vorschau sehe nicht das was auch beim Starten herauskommt, woran liegt das?
/edit


Vielleicht hat wer eine Idee oder einen groben Ansatz was ich besser machen kann?


Gruß
Java:
package gui;

import java.awt.BasicStroke;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class MainWindow {

    private int lastX, lastY;
    private JFrame frameMalProgramm;
    private JPanel panelTop;
    private JPanel panelColorPicked;
    private Canvas panelDraw;
    private JPanel panelDrawShow;
    private JScrollPane scrollPane;
    private JSlider sliderLineSize;
    private JLabel labelLineSize;
    private JScrollBar horScroll, verScroll;
    private Color COLOR_PICKED = Color.black;
    private int DRAW_SIZE = 5;
    private static MainWindow w;
    private boolean TOOL_BAR_VISIBLE = true;
    private boolean RIGHT_MOUSE_DOWN = false;
    private int saveMouseX, saveMouseY;
    private JButton buttonHideToolBar;
    private ArrayList<lineObject> visibleObjects = new ArrayList<lineObject>();
    private MainWindow window;
    private Graphics2D graphics;
    private JLabel lblNewLabel;

    /**
     * Launch the application.
     *
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    w = new MainWindow();
                    w.frameMalProgramm.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public MainWindow() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frameMalProgramm = new JFrame();
        frameMalProgramm.setTitle("MalProgramm");
        frameMalProgramm.setAlwaysOnTop(true);
        frameMalProgramm.setResizable(false);
        frameMalProgramm.setBounds(0, 0, 1900, 1000);
        frameMalProgramm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frameMalProgramm.getContentPane().setLayout(null);

        panelDraw = new Canvas();

        panelDraw.addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent arg0) {
                if (!RIGHT_MOUSE_DOWN) {
                    paintLine(lastX, lastY, arg0.getX(), arg0.getY());
                    lastX = arg0.getX();
                    lastY = arg0.getY();
                }
            }
        });
        panelDraw.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent arg0) {
                if (arg0.getButton() == 1) { // left click
                    paintLine(arg0.getX(), arg0.getY(), arg0.getX(),
                            arg0.getY());
                    lastX = arg0.getX();
                    lastY = arg0.getY();

                }

                if (arg0.getButton() == 3) // right click
                {
                    RIGHT_MOUSE_DOWN = true;
                }
            }

            @Override
            public void mouseReleased(MouseEvent e) {

                if (e.getButton() == 3) // right click
                {
                    RIGHT_MOUSE_DOWN = false;
                }

            }
        });

        panelDraw.setBackground(Color.WHITE);
        panelDraw.setBounds(0, 0, 4000, 4000);
        panelDraw.setPreferredSize(new Dimension(4000, 4000));
        // frameMalProgramm.getContentPane().add(panelDraw);

        scrollPane = new JScrollPane();
        scrollPane.setLocation(500, 0);
        // JViewport viewport = new JViewport();
        // scrollPane.setViewport(viewport);
        scrollPane.setViewportView(panelDraw);

        verScroll = scrollPane.getVerticalScrollBar();
        horScroll = scrollPane.getHorizontalScrollBar();
        verScroll.setPreferredSize(new Dimension(30, 0));
        horScroll.setPreferredSize(new Dimension(0, 30));

        verScroll.addAdjustmentListener(new AdjustmentListener() {

            @Override
            public void adjustmentValueChanged(AdjustmentEvent e) {
                verticalScrolled(e);

            }
        }

        );

        horScroll.addAdjustmentListener(new AdjustmentListener() {

            @Override
            public void adjustmentValueChanged(AdjustmentEvent e) {
                horizontalScrolled(e);

            }
        }

        );

        scrollPane
                .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        scrollPane
                .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setSize(1750, 900);
        frameMalProgramm.getContentPane().add(scrollPane);

        panelTop = new JPanel();
        panelTop.setBounds(0, 0, 499, 920);
        frameMalProgramm.getContentPane().add(panelTop);
        panelTop.setLayout(null);

        sliderLineSize = new JSlider();
        sliderLineSize.setFont(new Font("Tahoma", Font.BOLD, 99));
        sliderLineSize
                .setToolTipText("drag the button to change the line size");
        sliderLineSize.setValue(5);
        sliderLineSize.setMaximum(40);
        sliderLineSize.setMinimum(1);
        sliderLineSize.setOrientation(SwingConstants.VERTICAL);
        sliderLineSize.setBounds(190, 540, 80, 360);

        panelTop.add(sliderLineSize);

        labelLineSize = new JLabel("5");
        labelLineSize.setToolTipText("currently selected line size");
        labelLineSize.setHorizontalAlignment(SwingConstants.CENTER);
        labelLineSize.setFont(new Font("Tahoma", Font.PLAIN, 35));
        labelLineSize.setBounds(285, 860, 70, 40);
        panelTop.add(labelLineSize);

        panelColorPicked = new JPanel();
        panelColorPicked.setToolTipText("the currently selected colour");
        panelColorPicked.setBackground(Color.BLACK);
        panelColorPicked.setBounds(15, 740, 160, 160);
        panelTop.add(panelColorPicked);

        JButton buttonClearAll = new JButton("Alles l\u00F6schen");
        buttonClearAll.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                removeAllElements();
            }
        });
        buttonClearAll.setToolTipText("delete all objects");
        buttonClearAll.setBounds(40, 560, 100, 100);

        panelTop.add(buttonClearAll);

        JButton buttonColorRed = new JButton("");
        buttonColorRed.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                COLOR_PICKED = Color.RED;
                colorChanged();
            }
        });
        buttonColorRed.setBackground(Color.RED);
        buttonColorRed.setBounds(15, 15, 100, 100);
        panelTop.add(buttonColorRed);

        JButton buttonColorGreen = new JButton("");
        buttonColorGreen.setBackground(Color.GREEN);
        buttonColorGreen.setBounds(130, 15, 100, 100);
        buttonColorGreen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                COLOR_PICKED = Color.GREEN;
                colorChanged();
            }
        });
        panelTop.add(buttonColorGreen);

        JButton buttonColorBlue = new JButton("");
        buttonColorBlue.setBackground(Color.BLUE);
        buttonColorBlue.setBounds(245, 15, 100, 100);
        buttonColorBlue.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                COLOR_PICKED = Color.BLUE;
                colorChanged();
            }
        });
        panelTop.add(buttonColorBlue);

        JButton buttonColorBlack = new JButton("");
        buttonColorBlack.setBackground(Color.BLACK);
        buttonColorBlack.setBounds(15, 130, 100, 100);
        buttonColorBlack.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                COLOR_PICKED = Color.BLACK;
                colorChanged();
            }
        });
        panelTop.add(buttonColorBlack);

        JButton buttonChooseColor = new JButton("Farbe w\u00E4hlen");
        buttonChooseColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                COLOR_PICKED = JColorChooser.showDialog(frameMalProgramm,
                        "Farbe auswählen", COLOR_PICKED);
                colorChanged();

            }
        });
        buttonChooseColor.setBounds(130, 130, 100, 100);

        panelTop.add(buttonChooseColor);

        panelDrawShow = new JPanel();
        panelDrawShow.setBackground(Color.BLACK);
        panelDrawShow.setBounds(300, 800, 50, 5);

        panelTop.add(panelDrawShow);

        lblNewLabel = new JLabel("Farbe:");
        lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 35));
        lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
        lblNewLabel.setBounds(15, 675, 160, 50);
        panelTop.add(lblNewLabel);
        buttonHideToolBar = new JButton("<->");
        buttonHideToolBar.setBounds(400, 400, 99, 99);
        panelTop.add(buttonHideToolBar);
        buttonHideToolBar.setToolTipText("show / hide toolbar");
        buttonHideToolBar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                if (TOOL_BAR_VISIBLE)
                    hideToolBar();
                else
                    showToolBar();
            }
        });
        buttonHideToolBar.setFont(new Font("Tahoma", Font.PLAIN, 15));
        sliderLineSize.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                DRAW_SIZE = sliderLineSize.getValue();
                panelDrawShow.setBounds(300, 800 - DRAW_SIZE, 50, DRAW_SIZE);

                drawSizeChanged();

            }
        });

    }

    protected void paintLine(int x, int y, int x2, int y2) {
        lineObject dot = new lineObject(x, y, x2, y2, DRAW_SIZE, COLOR_PICKED);
        visibleObjects.add(dot);
        paintAllObjects();

    }

    protected void horizontalScrolled(AdjustmentEvent e) {
        // repaint?
    }

    protected void verticalScrolled(AdjustmentEvent e) {
        // repaint?

    }

    protected static void removeAllElements() {

        clearScreen();
        paintAllObjects();
        if (w.TOOL_BAR_VISIBLE) {
            hideToolBar();
            showToolBar();
        } else {
            showToolBar();
            hideToolBar();

        }

    }

    private static void clearScreen() {
        w.visibleObjects.clear();
    }

    protected static void paintAllObjects() {

        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                w.graphics = (Graphics2D) w.panelDraw.getGraphics();

                for (lineObject l : w.visibleObjects) {
                    w.graphics.setColor(l.c);
                    w.graphics.setStroke(new BasicStroke(l.size));
                    w.graphics.drawLine(l.startX, l.startY, l.endX, l.endY);
                }

            }
        });


    }

    private static void colorChanged() {
        w.panelDrawShow.setBackground(w.COLOR_PICKED);
        w.panelColorPicked.setBackground(w.COLOR_PICKED);

    }

    private static void drawSizeChanged() {
        w.labelLineSize.setText(w.DRAW_SIZE + "");
        w.sliderLineSize.setValue(w.DRAW_SIZE);

    }

    private static void showToolBar() {
        w.TOOL_BAR_VISIBLE = true;
        w.panelTop.setBounds(0, 0, 500, 900);
        w.scrollPane.setSize(1350, 850);
        w.scrollPane.setBounds(500, 0, 1350, 850);
        w.scrollPane.updateUI();
        paintAllObjects();
    }

    private static void hideToolBar() {
        w.TOOL_BAR_VISIBLE = false;
        w.panelTop.setBounds(-400, 0, 500, 900);
        w.scrollPane.setSize(1750, 850);
        w.scrollPane.setBounds(100, 0, 1750, 850);
        w.scrollPane.updateUI();
        paintAllObjects();
    }

    private static class lineObject {
        protected int startX, startY, endX, endY, size;
        protected Color c;

        public lineObject(int x, int y, int x2, int y2, int size, Color c) {
            this.startX = x;
            this.startY = y;
            this.endX = x2;
            this.endY = y2;
            this.size = size;
            this.c = c;
        }
    }

    public static void scrollPaneTo(int x, int z) {
        w.horScroll.setValue(x);
        w.verScroll.setValue(z);

    }
}
 

dzim

Top Contributor
Ich hab keine Ahnung von Swing (mehr), aber ich vermute, dass auch hier - wie für SWT und JavaFX (und andere nicht unbedingt Java-GUI-Fameworks)- die Regel gilt: Wenn du Operationen machst, die etwas Zeit in Anspruch nehmen (die Zeit herausfinden kannst du per Debugging, LOGs schreiben, etc.) und diese dann direkt auf dem UI-Thread machst, wird diese wahrscheinlich weniger "responsive" werden.
Du musst dich also möglicherweise mal mit Threading auseinandersetzen. Wie man also Operation lösgelöst von der GUI durchführt und nur Updates an der GUI zurück zum UI-Thread sendet.
Aber hier müssten die Swing-Profis dir helfen, da kenne ich mich nicht mehr genug mit aus.
 

Phtevenz

Mitglied
Danke dzim, über so etwas habe ich bisher noch nicht nachgedacht. Das verbessern meiner Java Kenntnisse hat also ein Thema mehr.

Falls noch wer Ideen hat wie man das geschickt mit Threading macht bin ich natürlich sehr dankbar :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Malprogramm Bild speichern? AWT, Swing, JavaFX & SWT 9
F Darstellungsfehler des Zeichnens im Malprogramm AWT, Swing, JavaFX & SWT 23
H Kleines Malprogramm AWT, Swing, JavaFX & SWT 36
G Undo und Redo in Malprogramm AWT, Swing, JavaFX & SWT 4
P Rückgängig-Funktion im Malprogramm AWT, Swing, JavaFX & SWT 3
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
B Swing JScrollPane scrollt nicht AWT, Swing, JavaFX & SWT 10
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
N Swing JScrollPane mit Tastatur bedienen? AWT, Swing, JavaFX & SWT 0
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
MaxG. Swing JScrollPane AWT, Swing, JavaFX & SWT 10
Soloeco Swing JScrollPane AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
Thallius JScrollPane Scrollpos setzen nach Neuzeichnen AWT, Swing, JavaFX & SWT 3
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
V JScrollPane im zur Laufzeit verändernden JFrame AWT, Swing, JavaFX & SWT 0
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
Bluedaishi JScrollpane AWT, Swing, JavaFX & SWT 0
L JScrollPane scrollt nicht !! AWT, Swing, JavaFX & SWT 3
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
F JTable mit JScrollPane AWT, Swing, JavaFX & SWT 4
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Transparentes JScrollPane AWT, Swing, JavaFX & SWT 0
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
A Swing JScrollPane Problem AWT, Swing, JavaFX & SWT 6
H Swing JScrollPane mit "viel Inhalt" scrollt zu langsam (inkl. See-For-Yourself.jar :D) AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane in JScrollPane - Problem AWT, Swing, JavaFX & SWT 3
K Bug in JScrollPane? AWT, Swing, JavaFX & SWT 4
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
M JScrollPane Header AWT, Swing, JavaFX & SWT 3
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
V LayoutManager JScrollPane verwirft Elementanordnung AWT, Swing, JavaFX & SWT 3
B JScrollPane Problem AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane AWT, Swing, JavaFX & SWT 7
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
F 2D-Grafik Skalieren der Scrollbars beim Zoomen einer JScrollPane AWT, Swing, JavaFX & SWT 4
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
C jPanel auf jScrollPane zentrieren AWT, Swing, JavaFX & SWT 3
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
S JScrollPane reagiert nicht AWT, Swing, JavaFX & SWT 3
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
D LayoutManager JScrollPane mit dynamischem Inhalt AWT, Swing, JavaFX & SWT 8
P Swing JScrollpane AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
J JScrollPane Probleme AWT, Swing, JavaFX & SWT 3
S Swing JScrollPane verliert Scrollbars AWT, Swing, JavaFX & SWT 5
D Swing JTable in JScrollpane beliebig verbreitern AWT, Swing, JavaFX & SWT 5
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
M JScrollPane Problem AWT, Swing, JavaFX & SWT 6
S Swing JScrollpane und ViewPort AWT, Swing, JavaFX & SWT 4
D JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 12
X JScrollPane funzt net... AWT, Swing, JavaFX & SWT 5
H jscrollpane AWT, Swing, JavaFX & SWT 12
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
A Problem mit JScrollPane in einer JScrollpane AWT, Swing, JavaFX & SWT 4
B JScrollPane Problem AWT, Swing, JavaFX & SWT 25
T Swing JScrollPane- und Tabelle-Header Problem AWT, Swing, JavaFX & SWT 25

Ähnliche Java Themen

Neue Themen


Oben