Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] Vari problemi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    14

    [JAVA] Vari problemi

    1)non "ridimensiona" le immagini(gia trattato,se qualcun altro ha soluzioni son ben accette) neanche dopo alcuni consigli;
    2)Mi servirebbe un font dei testi e aree piu grande;
    3) inserimento da parte di un utente esterno nei campi di testo bloccata;
    4)scroll nel textFieldArea

    Questo è il codice(ho tolto le dichiarazioni dei bottini ecc perche senno non me lo faceva inserire):


    JScrollPane scroll = new JScrollPane(txtAreaParziale, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED );


    Action actionClick;

    //Inizializzo i componenti

    public void InitializeComponent(){
    //Imposto le dimensioni della finestra (x,y)
    setExtendedState(JFrame.MAXIMIZED_BOTH);
    //creazione componenti

    btn0 = new JButton("0");
    btn1 = new JButton("1");
    btn2 = new JButton("2");
    btn3 = new JButton("3");
    btn4 = new JButton("4");
    btn5 = new JButton("5");
    btn6 = new JButton("6");
    btn7 = new JButton("7");
    btn8 = new JButton("8");
    btn9 = new JButton("9");
    coca = new JButton("Coca Cola");
    //sprite = new JButton("Sprite");
    //the = new JButton("Thè");
    //patatine = new JButton("Patatine Fritte");
    txtFieldInput = new JTextField("");
    txtFieldTotale = new JTextField("Totale"+"");
    txtAreaParziale = new JTextArea("");
    btnSomma = new JButton("+");
    btnSottrazione = new JButton("-");
    btnMoltiplicazione = new JButton("*");
    btnDivisione = new JButton("/");
    btnVirgola = new JButton(",");
    btnUguale = new JButton("=");
    pnlNorth = new JPanel();
    pnlCenter = new JPanel();
    pnlSouth = new JPanel();
    pnlBottom = new JPanel();
    pnlFondo = new JPanel();


    //Inserimento immagine nel JButton

    ImageIcon icona =new ImageIcon("cocacola.jpg");
    coca.setIcon(icona);
    coca.setActionCommand("Coca Cola");

    JButton sprite = new JButton ();
    ImageIcon icona1 =new ImageIcon("sprite.jpg");
    sprite.setIcon(icona1);
    sprite.setActionCommand("Sprite");
    sprite.setIcon(icona1);
    sprite.setPressedIcon(icona1);
    sprite.setBorderPainted(true);
    sprite.setContentAreaFilled(true);
    sprite.setOpaque(true);
    sprite.setMargin (new Insets (0, 0, 0, 0));



    //creazione azioni
    actionClick = new AbstractAction("Click"){
    public void actionPerformed(ActionEvent e){
    temp = '0';
    Do_Button();
    }
    };


    //inizializzazione componenti

    //configurazione btn00
    btn0.setSize(45,30);
    btn0.addActionListener(new ClickActionListener());

    //configurazione btn01
    btn1.setSize(30, 30);
    btn1.addActionListener(new ClickActionListener());

    //configurazione btn02
    btn2.setSize(30, 30);
    btn2.addActionListener(new ClickActionListener());

    //configurazione btn03
    btn3.setSize(30, 30);
    btn3.addActionListener(new ClickActionListener());

    //configurazione btn04
    btn4.setSize(30, 30);
    btn4.addActionListener(new ClickActionListener());

    //configurazione btn05
    btn5.setSize(30, 30);
    btn5.addActionListener(new ClickActionListener());

    //configurazione btn06
    btn6.setSize(30, 30);
    btn6.addActionListener(new ClickActionListener());

    //configurazione btn07
    btn7.setSize(30, 30);
    btn7.addActionListener(new ClickActionListener());

    //configurazione btn08
    btn8.setSize(30, 30);
    btn8.addActionListener(new ClickActionListener());

    //configurazione btn09
    btn9.setSize(30, 30);
    btn9.addActionListener(new ClickActionListener());

    //configurazione Coca Cola
    coca.setSize(30, 30);
    coca.addActionListener(new ClickActionListener());

    //configurazione Sprite
    sprite.setSize(30, 30);
    sprite.addActionListener(new ClickActionListener());

    //configurazione Thè
    the.setSize(30, 30);
    the.addActionListener(new ClickActionListener());

    //configurazione Patatine Fritte
    patatine.setSize(30, 30);
    patatine.addActionListener(new ClickActionListener());

    //configurazione btnVirgola
    btnVirgola.setSize(45, 30);
    btnVirgola.addActionListener(new ClickActionListener());

    //configurazione btnSomma
    btnSomma.setSize(30, 30);
    btnSomma.addActionListener(new ClickActionListener());

    //configurazione btnSottrazione
    btnSottrazione.setSize(30, 30);
    btnSottrazione.addActionListener(new ClickActionListener());

    //configurazione btnMoltiplicazione
    btnMoltiplicazione.setSize(30, 30);
    btnMoltiplicazione.addActionListener(new ClickActionListener());

    //configurazione btnDivisione
    btnDivisione.setSize(30, 30);
    btnDivisione.addActionListener(new ClickActionListener());

    //configurazione btnEqual
    btnUguale.setSize(120,30);
    btnUguale.addActionListener(new ClickActionListener());

    txtFieldInput.setSize(120, 30);
    //txtFieldInput.setEnabled(false);
    txtFieldTotale.setSize(120, 30);
    //txtFieldTotale.setEnabled(false);
    txtAreaParziale.setSize(120, 30);
    //txtFieldParziale.setEnabled(false);

    pnlBottom.setLayout(new GridLayout(1,10));

    pnlNorth.setLayout(new GridLayout(1,10));
    pnlCenter.setLayout(new GridLayout(1,10));
    pnlSouth.setLayout(new GridLayout(1,10));
    pnlFondo.setLayout(new GridLayout(1,10));

    //aggiunta componenti

    setLayout(new GridLayout(5, 0));

    setTitle("Registratore di cassa");

    //divisione per area

    pnlBottom.add(btn0);
    pnlBottom.add(btnVirgola);
    pnlBottom.add(btnUguale);
    pnlBottom.add(btnSomma);
    pnlBottom.add(coca);
    pnlBottom.add(sprite);
    pnlBottom.add(the);

    pnlSouth.add(txtAreaParziale);
    pnlSouth.add(btn1);
    pnlSouth.add(btn2);
    pnlSouth.add(btn3);
    pnlSouth.add(btnSottrazione);

    pnlCenter.add(btn4);
    pnlCenter.add(btn5);
    pnlCenter.add(btn6);
    pnlCenter.add(btnMoltiplicazione);
    pnlCenter.add(patatine);

    pnlNorth.add(txtFieldInput);
    pnlNorth.add(btn7);
    pnlNorth.add(btn8);
    pnlNorth.add(btn9);
    pnlNorth.add(btnDivisione);

    pnlFondo.add(txtFieldTotale);

    getContentPane().add(pnlNorth);
    getContentPane().add(pnlCenter);
    getContentPane().add(pnlSouth);
    getContentPane().add(pnlBottom);
    getContentPane().add(pnlFondo);

    setBounds(30, 30, 120, 120);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setVisible(true);
    }

    public class ClickActionListener implements ActionListener{
    public void actionPerformed(ActionEvent e){

    double tp = 0;

    if (virgola)
    decimali += 1;

    String tmp = e.getActionCommand();
    //temp = tmp[1];
    if (tmp == "0")
    temp = 0;
    else if (tmp == "1")
    temp = 1;
    else if (tmp == "2")
    temp = 2;
    else if (tmp == "3")
    temp = 3;
    else if (tmp == "4")
    temp = 4;
    else if (tmp == "5")
    temp = 5;
    else if (tmp == "6")
    temp = 6;
    else if (tmp == "7")
    temp = 7;
    else if (tmp == "8")
    temp = 8;
    else if (tmp == "9")
    temp = 9;
    else if (tmp == "Coca Cola") {
    temp = 2.9;
    s = s + "Coca Cola 2.90€ \n";
    txtAreaParziale.setText(s);
    }
    else if (tmp == "Sprite") {
    temp = 2.9;
    s = s + "Sprite 2.90€ \n";
    txtAreaParziale.setText(s);
    }
    else if (tmp == "Thè") {
    temp = 2.7;
    s = s + "Thè 2.70€ \n";
    txtAreaParziale.setText(s);
    }
    else if (tmp == "Patatine Fritte") {
    temp = 2.2;
    s = s + "Patatine Fritte 2.20€ \n";
    txtAreaParziale.setText(s);
    }
    else if (tmp == ","){
    virgola = true;
    return;
    }

    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Richi Visualizza il messaggio
    1)non "ridimensiona" le immagini(gia trattato,se qualcun altro ha soluzioni son ben accette) neanche dopo alcuni consigli;
    Generalmente/tipicamente si fa in modo che sia il pulsante ad "adattarsi" al testo e/o icona ..... non il contrario.

    Quote Originariamente inviata da Richi Visualizza il messaggio
    2)Mi servirebbe un font dei testi e aree piu grande;
    Tutti i componenti hanno un setFont. Puoi creare oggetti Font nuovi oppure "derivati" (modificando qualcosa) da altri (es. dal Font già assegnato di serie).

    Quote Originariamente inviata da Richi Visualizza il messaggio
    3) inserimento da parte di un utente esterno nei campi di testo bloccata;
    Precisa il concetto di "bloccata".

    Quote Originariamente inviata da Richi Visualizza il messaggio
    4)scroll nel textFieldArea
    Il componente da "scrollare" va messo semplicemente come "view" in JScrollPane (tipicamente da costruttore). Ed è poi JScrollPane (non il componente scrollato) che va inserito in un altro contenitore. Aggiungere di nuovo il componente scrollato dentro un contenitore lo fa togliere da dentro il JScrollPane (e chiaramente non scrolli un bel niente).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    14
    Per quanto mi impegno a comprendere non capisco cosa devo fare... per il 2) non capisco che porzione di codice dovrei inserire; per il 3) devo far in modo che un utente non possa cliccare nell area e scrivere lettere o numeri a caso; per il 4) come il 2). Scusate l' ignoranza

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Richi Visualizza il messaggio
    2) non capisco che porzione di codice dovrei inserire
    Mah ... dipende cosa vuoi fare. Se vuoi alterare un Font, come ho detto puoi farlo.
    Se è un problema di dimensionamento di un componente, dipende dove lo inserisci e in quale layout-manager. E mi pare che nel codice ci sia confusione. Se sfrutti un layout manager, un setSize non serve.

    Quote Originariamente inviata da Richi Visualizza il messaggio
    3) devo far in modo che un utente non possa cliccare nell area e scrivere lettere o numeri a caso
    Nei componenti di testo l'input non è limitato o filtrato di serie (cioè puoi scrivere cosa/quanto ti pare).
    Se vuoi limitare l'input (come numero di caratteri) o filtrarlo (solo certi caratteri), tipicamente la soluzione è quella di implementare un apposito Document che estende PlainDocument. Vedi miei esempi qui.

    Quote Originariamente inviata da Richi Visualizza il messaggio
    4) come il 2)
    È corretto fare:
    JScrollPane scroll = new JScrollPane(txtAreaParziale, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED );

    ma poi non devi fare:

    pnlSouth.add(txtAreaParziale);

    ma solo:

    pnlSouth.add(scroll);

    perché il JTextArea è già disposto dentro JViewport (a sua volta dentro JScrollPane). E un componente può avere 1 solo "parente" dal punto di vista strutturale).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @Richi: non è questo il modo di usare il forum.
    Ciascun problema deve essere trattato in una discussione e non ha nessun senso creare discussioni contenenti più di un problema. Il forum non è solo tuo: ci sono altri utenti, che potrebbero aver bisogno delle stesse informazioni che stai cercando tu: se tutti facessero come te, nessuno avrebbe più le informazioni che cerca (perchè sì: prima di aprire una discussione, va fatta una ricerca per vedere se l'argomento è già stato trattato ed eventualmente risolto).

    Ciascuna discussione ha un titolo che descrive brevemente il problema trattato. Mi sembra ovvio, logico e lapalissiano che un titolo come "Vari problemi" sia esattamente il contrario di quello che va fatto... oltre al fatto che tutto questo è espressamente scritto nel Regolamento interno.

    Inoltre, il codice va postato usando gli appositi tag CODE, messi a disposizione dal forum per mantenere formattazione ed indentazione del listato, che altrimenti (come avrai potuto constatare anche tu in questa discussione) viene persa rendendo il codcie difficoltoso da leggere.

    Per tutti questi motivi, chiudo qui questa discussione.

    Ti consiglio di affrontare un problema per volta, di effettuare le ricerche prima di aprire le discussioni e, soprattutto, di aprire una sola discussione per argomento (l'argomento deve essere specifico!).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.