Brak rysowania na oknie wygenerowanym przez WindowBuilder.

2014-02-19 20:04

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

Witam.

Problem wygląda tak że rysowanie fajnie działa, gdy sam tworzę okno, ale gdy okno tworzę przez windowbuildera to już nie działa. Gdyby ktoś mógł zobaczyć w czym problem.

Główna klasa okna wygenerowana przez WindowBuildera:

public class MainWindow extends JFrame 
{

    private JPanel contentPane;
    private Component conp = new Component();
    public static void main(String[] args) 
    {
        EventQueue.invokeLater(new Runnable() 
        {
            public void run() 
            {
                try {
                    MainWindow frame = new MainWindow();
                    frame.setVisible(true);
                } catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
        });
    }

  MainWindow() 
  {
        setLocationByPlatform(true);
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension ScreenSize = kit.getScreenSize();
        setSize(ScreenSize.width-200,ScreenSize.height-200);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        contentPane = new JPanel();
        contentPane.add(conp);
        setContentPane(contentPane);

    }

}

I klasa dziedzicząca z JComponenet:

public class Component extends JComponent
{
    Image image = new ImageIcon("java.png").getImage();
    public void paintComponent(Graphics g)
    {
        Graphics2D g2d = (Graphics2D) g;
        Line2D lina = new Line2D.Double(1500.0,0.0,1500.0,880.0);
        g2d.draw(lina);
        g2d.drawImage(image,0,0,700,700,null);
    }
}

Pozostało 580 znaków

2014-02-20 07:50
Moderator

Rejestracja: 11 lat temu

Ostatnio: 1 rok temu

1

Cały kod, który zamieściłeś jest generowany przez WindowBuildera?
Zamień

contentPane = new JPanel();
contentPane.add(conp);
setContentPane(contentPane);

na

getContentPane().add(conp);

lub na

add(conp);

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2014-02-20 08:03

Pozostało 580 znaków

2014-02-20 12:50

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

Tak masz racje problem był z tym:

contentPane = new JPanel();
contentPane.add(conp);
setContentPane(contentPane);

Ale nic z tym nie musiałem kombinować po prostu usunąłem to i teraz wszystko jest ok po dodaniu

add(conp)

Przedtem nic nie działało.. próbowałem add(conp), this.add(conp)


 i nic. W sumie nie wiem po co WindowBuilder tworzy to contentPane.

Kod był wygenerowany przez WindowBuildera, zmieniłem tylko linijkę odpowiedzialna na rozmiary tak aby był dostosowane do rozmiarów pulpitu no i położenie.

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0