Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki. Iškilo problema. Kaip nustatyti textField vietą pagal koordinates?

Tarkim:

public Appletas() 
   {
   	inputLine.setLocation(null);
   	inputLine.setLocation(80, 80);
       add(inputLine);
   }

 

Čia vistiek texField'as "input" stovi default'inėje vietoje. Kaip jį priversti judėti pagal mano norus? :/

Redagavo Ignas B
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip man klasėje ButtonListener pasiekti JTextField'a ignas? :/ Čia kaip suprantu reikia paveldėjimą organizuoti, tačiau nežinau kaip, nes man neveikia jei padarau

class ButtonListener extends Lab1 implements ActionListener

 

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Lab1 extends JPanel
{

 public Lab1() 
 {

   JButton btn1 = new JButton("Gerai");
   JLabel tekstas = new JLabel("Vardas");
   JTextField ignas = new JTextField(10);
   setLayout(null);


   btn1.addActionListener(new ButtonListener());
   add(btn1);
   add(ignas);
   add(tekstas);
   btn1.setBounds(100,70,100,20);
   ignas.setBounds(100, 30, 100, 20);
   tekstas.setBounds(50,30, 100, 20);

 }

 public static void main(String[] args) 
 {
   JFrame frame = new JFrame();
   frame.getContentPane().add(new Lab1());

   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(300, 300);
   frame.setVisible(true);
 }
}

class ButtonListener implements ActionListener 
{
 ButtonListener() 
 {

 }

 public void actionPerformed(ActionEvent e) 
 {
   if (e.getActionCommand().equals("Gerai")) 
   {
   	String vardas = ignas.getText();
   	System.out.println("Vardas yra: "+ignas);
   }
 }
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Mano siūlomas varianta naudoti "static" tipus. Jei trumpai tai jie padaro nurodytą lauką vieninteliu programoje. Taigi visus šiuos laukus:

JButton btn1 = new JButton("Gerai");
JLabel tekstas = new JLabel("Vardas");
JTextField ignas = new JTextField(10);

Siūlau perdaryti į static:

static JButton btn1 = new JButton("Gerai");
static JLabel tekstas = new JLabel("Vardas");
static JTextField ignas = new JTextField(10);

Tada bus įmanoma juos kviesti tiesiogiai per klasę Lab1:

Lab1.btn1.(...);

 

TAČIAU norint juos padaryti statiniais kintamaisiais - turi juos perkelti iš metodo į klasės kintamuosius:

public class Lab1 extends JPanel
{
 private static JButton btn1 = null;
 private static JLabel tekstas = null;
 private JTextField ignas = null;

 public Lab1() 
 {
   setLayout(null);
   btn1.addActionListener(new ButtonListener());
   add(getButton1());
   add(tekstas);
   add(ignas);
 }

 public static JButton getButton1()
 {
   if(btn1 == null)
   {
      btn1 = new JButton("Gerai");
      btn1.setBounds(100,70,100,20);
   }
   return btn1;
 }

 public static JLabel getTekstas()
 {
   if(tekstas == null)
   {
      tekstas = new JLabel("Vardas");
      tekstas.setBounds(50,30, 100, 20);
   }
   return tekstas;
 }

 public static JTextField getIgnas()
 {
   if(ignas == null)
   {
      ignas = new JTextField(10);
      ignas.setBounds(100, 30, 100, 20);
   }
   return ignas;
 }

 public static void main(String[] args) 
 {
   JFrame frame = new JFrame();
   frame.getContentPane().add(new Lab1());

   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(300, 300);
   frame.setVisible(true);
 }
}

 

Ir tada būtų galima šitaip iškviesti norimus kintamuosius:

class ButtonListener implements ActionListener 
{
 ButtonListener() 
 {
   Lab1.getIgnas().(...);
 }

 public void actionPerformed(ActionEvent e) 
 {
   if (e.getActionCommand().equals("Gerai")) 
   {
       String vardas = ignas.getText();
       System.out.println("Vardas yra: "+ignas);
   }
 }
}

 

Dar patarimas toks: Jei ši panelė yra kaip pagrindinis komponentas, kuriame saugosi visus kitus, siūlau ją padaryt JFrame'o content pane.

Redagavo Minutis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...