Java & NetBeans IDE

0

Witam. Mam problem z Java w NetBeans IDE.
Zrobiłem panel za pomocą domyślnego designera w IDE

 public class GoraPanel extends javax.swing.JPanel
    {
    /** Creates new form GoraPanel */
    public GoraPanel()
	{
	initComponents();
	}
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents()
    {

        jButton1 = new javax.swing.JButton();

        jButton1.setText("jButton1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addContainerGap())
        );
    }// </editor-fold>                        
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    // End of variables declaration                   
    }

Zawiera on jedynie button z domyślnym napisem.
Zrobiłem też ramkę, również za pomocą domyślnego designera. Jak mogę umieścić panel w tej ramce?

1

Hmm, przeciągnąć?

Jak masz zakładkę Design, to w lewym dolnym rogu powinien ci się pojawić Navigator z drzewkiem komponentów i tam na tym drzewku możesz sobie zrobić przeciągnij&upuść.

0

Dzięki za odpowiedź, niestety nie mogę tego znaleźć w zakładce Navigator. Znalazłem trochę inne rozwiązanie, trzeba dodać panel do palety za pomocą "add to palette" i wtedy można go używać tak jak innych komponentów.

@ADD:
Ok, co prawda dodałem panel, ale nie mogę ustawiać eventów dla jego poszczególnych elementów. Wie ktoś jak mogę to zmienić?

@ADD2:
Właściwie to wystarczy przeciągnąć panel z drzewka Files lub Projects, nie trzeba dodawać do palety. Ale to ciągle powoduje problem z obsługą zdarzeń.

0

Tzn chcesz się przebić dwa poziomy w dół? Moim zdaniem tak się nie powinno robić. Elementy panelu powinny być obsługiwane przez ten panel, a nie przez jego rodzica. Możesz za to spróbować przekazywać eventy w górę i wtedy obsłużyć u góry.

0

Mam 2 panele.
1: Zawiera 2 buttony
2: Zawiera label
Chce, żeby po kliknięciu któregoś z buttonów coś się stało z labelem (zmiana tekstu, rozmiaru, ukrycie, cokolwiek). Akcja ma być zależna od tego który button kliknę.

0

Moim zdaniem powinieneś np zrobić beana i spiąć go z tymi kontrolkami poprzez przekazanie tego beana do obydwu paneli.

Jakiś czas temu klepnąłem GUI w Swingu do mojego programu kompresującego. Jest tutaj: https://github.com/tarsa/TarsaLZP (podkatalog java). Zrobiłem dwa beany i podpiąłem akcje przez wyklikanie (te wyklikane bindingi nie są jakieś super eleganckie, no ale nie chciało mi się bawić w ręczne klepanie, bo i tak projekt jest malutki). Jest tam np taki bajer, że po podaniu złej konfiguracji button do odpalania kompresji się wyłącza.

0

Dzięki za odpowiedź, widzę, ze porwałem się na trochę zbyt głębokie wody. W takim razie idę dalej z tematami w książce, a do tego programu wrócę jak poznam beany.

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