Novy JTextField po kliknuti na button – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Novy JTextField po kliknuti na button – Java – Fórum – Programujte.comNovy JTextField po kliknuti na button – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
SVKSuli0
Newbie
24. 11. 2014   #1
-
0
-

ahojte, potrebujem poradiť ako mam upraviť môj kód tak aby pridával vždy po kliknutí na tlačítko nový textfield, zatiaľ my to funguje tak že po kliknutí mi to vytvorí iba jeden textfield a ďalšie už nevytvorí. 

private static JTextField testField = new JTextField("test");

private void testField() {
        plTest.add(testField);
        testField.setEnabled(false);
        testField.setDisabledTextColor(Color.BLACK);
        testField.setBackground(Color.white);
    }

private void btnTestActionPerformed(java.awt.event.ActionEvent evt) {                                            
        this.testField();
        plTestPanel.validate();
        plTestPanel.repaint();
    }

ďakujem za radu :)

Nahlásit jako SPAM
IP: 195.168.26.–
Reklama
Reklama
SVKSuli0
Newbie
24. 11. 2014   #2
-
0
-

#1 SVKSuli

ok už som zistil ako to spraviť ale stále nechápem prečo to teraz ide a v tom predtým nie...  

private void btnTestActionPerformed(java.awt.event.ActionEvent evt) {                                            
        plTest.add(new JTextField("test"));
        plTestPanel.validate();
        plTestPanel.repaint();
    }

Nahlásit jako SPAM
IP: 195.168.26.–
Řešení
NotBeginner
~ Anonymní uživatel
181 příspěvků
25. 11. 2014   #3
-
0
-
Vyřešeno Nejlepší odpověď

V prvním uvedeném zdroji máš definovaný pouze jeden objekt JTextField. I kdybys klikl 1000x proste je v třídě definován pouze 1xKRÁT. Je to ten  :

private static JTextField testField = new JTextField("test");

V druhém případě vytváříš pořád nový objekt JTextField bez bez spojení s nějakou deklarací. Tímto způsobem prostě jich vytvořím kolik chceš ale je ti to k ničemu neboť s ním nelze pracovat( např. načíst co do něj vložíš).

plTest.add(new JTextField("test"));

Závěr: pořádně ale skutečně pořádně si nastuduj práci s objekty(deklarace a reference).

Nahlásit jako SPAM
IP: 217.112.161.–
SVKSuli0
Newbie
25. 11. 2014   #4
-
0
-

#3 NotBeginner

mam to uz srpavene zhruba tak ako som chcel aby to pridavalo, neviem ci si este zmyslim nejaku zmenu... vpodstate ide o to zatial ze mam zoznam do ktoreho vyberam s comboBoxu jednotku vyberem pocet zo spineru a pridam do zoznamu aj zo znasobenymi statmy tej jednotky. ziatial neries na co to je dobre vypada to asi takto:

static int nasobeniePoctom;
private int comboBox;

private void btnMojaArmaActionPerformed(java.awt.event.ActionEvent evt) {                                            
        nasobeniePoctom =(int) jSpinner1.getValue();
        
        if(comboBox == 0) {
            this.kostlivec();
        }
}

private void jComboBox3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        comboBox = jComboBox3.getSelectedIndex();
}

private void kostlivec() {
        JTextField druhField = new JTextField("kostlivec");
        plDruh.add(druhField);
        druhField.setEnabled(false);
        druhField.setDisabledTextColor(Color.BLACK);
        druhField.setBackground(new Color(240,240,240));
        
        JTextField pocetField = new JTextField(String.valueOf(1*nasobeniePoctom));
        plPocet.add(pocetField);
        pocetField.setEnabled(false);
        pocetField.setDisabledTextColor(Color.BLACK);
        pocetField.setBackground(new Color(240,240,240));        
        
        JTextField zoldField = new JTextField(String.valueOf(1*nasobeniePoctom));
        plZold.add(zoldField);
        zoldField.setEnabled(false);
        zoldField.setDisabledTextColor(Color.BLACK);
        zoldField.setBackground(new Color(240,240,240)); 
        
        JTextField poskodenieField = new JTextField(String.valueOf(15*nasobeniePoctom)+" fiz");
        plPoskodenie.add(poskodenieField);
        poskodenieField.setEnabled(false);
        poskodenieField.setDisabledTextColor(Color.BLACK);
        poskodenieField.setBackground(new Color(240,240,240)); 
        
        JTextField zivotyField = new JTextField(String.valueOf(35*nasobeniePoctom));
        plZivoty.add(zivotyField);
        zivotyField.setEnabled(false);
        zivotyField.setDisabledTextColor(Color.BLACK);
        zivotyField.setBackground(new Color(240,240,240)); 
        
        JTextField regenField = new JTextField(String.valueOf(10));
        plRegen.add(regenField);
        regenField.setEnabled(false);
        regenField.setDisabledTextColor(Color.BLACK);
        regenField.setBackground(new Color(240,240,240));
        
        JTextField odolnostiField = new JTextField(String.valueOf(20)+" mraz");
        plOdolnosti.add(odolnostiField);
        odolnostiField.setEnabled(false);
        odolnostiField.setDisabledTextColor(Color.BLACK);
        odolnostiField.setBackground(new Color(240,240,240));
    }

skusal som to napisat nejak jednoduchsie aby som to nemusel rozpisovat vsetko 100x ale vzdy to robilo nejaky problem momentalne to mam takto a som rad ze mi to funguje :)

ps: je to len vitiahnuta cast s kodu ktora pridava tu jednotku do zoznamu.

Nahlásit jako SPAM
IP: 89.173.201.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 72 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý