Page 1 of 1

Java - swing - superscript

Posted: Wed Jun 29, 2005 11:36 pm
by semika
Αναρωτιέμαι αν υπάρχει δυνατότητα στην java 1.4.2 να γράψεις κάτι και να εμφανίζεται με μορφή δύναμης. Δηλ 5^2. Xωρίς κάποιο ΑΡΙ. Απλά με τις συν/σεις και τάξεις της java.
Για την ακρίβεια έχω ένα radiobutton και θέλω δίπλα να εμφανίζεται μία δύναμη. Γίνεται??

Ευχαριστώ!

Posted: Thu Jun 30, 2005 12:22 am
by vagalati
Το Μath.pow() δεν κάνει αυτό που θέλεις;

Posted: Thu Jun 30, 2005 12:56 am
by semika
Μάλλον δεν ήμουν σαφής!!!!

Δε θέλω να μου υπολογίζει το αποτέλεσμα πχ 2^5 = 32 (κάτι που όλοι ξέρουμε από το 10 έτος οτι κάνει η pow) αλλά σε ένα label να δείχνει ως βάση το 2 και ως δύναμη το 5. Φαντάσου μία συμβολοσειρά όπως γράφεις στο Word(Formant->Font->Superscript).

Posted: Thu Jun 30, 2005 1:29 am
by vagalati
Ααα! :-D Μπερδεύτηκα επειδή έλεγες ότι θέλεις να εμφανίσεις μια δύναμη...
Δυστυχώς δεν ξέρω πως να εμφανίσεις εκθέτη.

Posted: Thu Jun 30, 2005 2:24 am
by semika
To παρακάτω απόσπασμα παρουσιάζει σε μια JTextPane αυτό που λέω παραπάνω:

Code: Select all

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

class test1 extends JFrame {
	DefaultStyledDocument doc;
    public test1() {
        setSize(new Dimension(400,300));
        setTitle("test1");

        Container con = getContentPane();

        con.setLayout( new BorderLayout() );

        JTextPane editor = new JTextPane();

	    StyleContext sc = new StyleContext();
	    doc = new DefaultStyledDocument( sc );

	    Style st = sc.addStyle( null , null );
        insrtString( "2" , st );


	    st = sc.addStyle( null , null );
        StyleConstants.setSuperscript( st , true );
        insrtString( "5" , st );

	    editor.setDocument( doc );

        JScrollPane scroll = new JScrollPane( editor );
        con.add( scroll , BorderLayout.CENTER );
        setVisible(true);
    }

	protected void insrtString( String contents , Style st ) {
        try {
	        doc.insertString( doc.getLength() , contents , st );
        } catch ( BadLocationException e ) {
            System.err.println("insrtString error: " + e );
        }
	}

    static public void main(String[] args) {
        new test1();
    }
}
Αυτό που ψάχνω είναι να εμφανίζεται στο 2^5 δίπλα σε ένα Checkbox.
Γίνεται κάτι τέτοιο?
Thanx anyway!

Posted: Thu Jun 30, 2005 4:26 am
by HdkiLLeR
Μπορέις να βάλεις δύο labels και το ένα να εμφανίζει την βάση και το άλλο τον εκθέτη. Το 2ο απλά θα εμφανίζεται λίγο πάνω και πιο δεξιά και θα έχει και μικρότερο font size.

Posted: Thu Jun 30, 2005 10:45 am
by semika
Το σκέφτηκα και αυτό αλλά θέλω να είναι δίπλα σε checkbox! Δεν ξέρω αλλά έχω κολλήσει...

Posted: Thu Jun 30, 2005 10:51 am
by P3
Για να μπορείς να τσα βάλεις όπου θέλεις δώσε στο jpanel που δουλέυεις Gridbug (ή κάπως έτσι) layout και θα μπορείς να τα μετακινείς κατα Pixel τα label και τα checkboxes όπου θέλεις.

Posted: Thu Jun 30, 2005 3:14 pm
by HdkiLLeR
semika wrote:Το σκέφτηκα και αυτό αλλά θέλω να είναι δίπλα σε checkbox! Δεν ξέρω αλλά έχω κολλήσει...
Βάλε κενό το label του checkbox και κόλλα δίπλα τα άλλα δύο labels. Με code κιόλας μπορείς να αυξομειώνεις τα μεγέθη τους ώστε να είναι πιο ρεαλιστικό και να μην το καταλαβαίνει ο user.

Posted: Fri Jul 01, 2005 2:06 pm
by dimitra
Κι εμένα η γνώμη μου είναι αυτή η πρόταση με το label που θα βρίσκεται μια γραμμή πιο πάνω όπως αυτή ορίζεται με το GridBagLayout και δεξιά και με μικρότερο size το label και η γραμματοσειρά, όπως είπε και ο HdkiLLeR. Στο συγκεκριμένο layout έχεις πάρα πολλές δυνατότητες. Αν θες οποιαδήποτε βοήθεια νομίζω ότι μπορώ να σε βοηθήσω.
Επίσης επειδή δεν έχω ασχοληθεί ιδιαίτερα με τα fonts στη java μπορείς να χρησιμοποιήσεις html σαν text στο component σου αφού τα components της java υποστηρίζουν html.

Posted: Sun Jul 03, 2005 11:49 am
by semika
Ευχαριστώ. Το έφτιαξα με gridbaglayout!!!
dimitra wrote:μπορείς να χρησιμοποιήσεις html σαν text στο component σου αφού τα components της java υποστηρίζουν html
Ναι το έχω κάνει κι αυτό αλλά δεν παίζει στα option buttons.

Posted: Sun Jul 03, 2005 2:26 pm
by semika
Ερώτηση:
To παρακάτω εμφανίζει μια label με italic:

Code: Select all

myLabel.setLabel("<html><I>Test</I></html>");
Υπάρχει κάτι αντίστοιχο για τα Checkbox?? ΓΙατί δεν το βρίσκω λογικό να μην παίζει..... Μήπως κάνω τπτ λάθος??

Posted: Sun Jul 03, 2005 3:20 pm
by HdkiLLeR
semika wrote:Ερώτηση:
To παρακάτω εμφανίζει μια label με italic:

Code: Select all

myLabel.setLabel("<html><I>Test</I></html>");
Υπάρχει κάτι αντίστοιχο για τα Checkbox?? ΓΙατί δεν το βρίσκω λογικό να μην παίζει..... Μήπως κάνω τπτ λάθος??
Δοκίμασε αυτό:

Code: Select all

myLabel.setLabel("<html><i>Test</i></html>");
:) :).

Posted: Sun Jul 03, 2005 3:27 pm
by semika
Βασικά ρωτάω αν υπάρχει για Checkbox, γτ για JLabel είναι οκ.
δηλ κάνω

Code: Select all

myCheckbox.setLabel("<html><i>Test</i></html>");
και αντί να εμφανίσει

Test

εμφανίζει

<html><i>Test</i></html>

Posted: Mon Jul 04, 2005 2:37 am
by HdkiLLeR
Ειλικρινά δεν ξέρω. Μπορείς να βάλεις το checkbox Και το label αυτού με ένα JLabel ώστε να μην έχεις κάποιο prob. Εγώ μόνο labels χρησιμοποιώ είναι τα πιο ευέλικτα.

Posted: Mon Jul 04, 2005 2:48 am
by Einherjar
sorry που δεν απάντησα νωρίτερα!
μπορείς να χρησιμοποιήσεις unicode για να παραστήσεις ένα superscript (ή και ένα subscript κ.λ.π). π.χ. το superscript 5 είναι '\u00b5, το superscript 52 είναι \u00b5\u00b2
Η java υποστηρίζει unicode οπότε μπορείς να βάλεις κάτι τέτοιο σε οποιοδήποτε text field.

περισσότερα για τους unicode χαρακτήρες, εδώ και ειδικότερα για μαθηματικούς χαρακτήρες εδώ.

Posted: Mon Jul 04, 2005 11:45 am
by semika
Einherjar είσαι ΘΕΟΣ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ευχαριστώ πολύ!
(Αν και το είχα κάνει με τον τρόπο του hd και της dimitra) αυτός ήταν συντομότερος και τον προτιμώ! Ευχαριστώ και πάλι!

Posted: Mon Jul 04, 2005 1:14 pm
by dimitra
Ομολογώ ότι σου βγάζω το καπέλο :) !Πολύ καλό!Εδώ είναι και όλοι οι unicode με την δεκαεξαδική τους αντιστοιχία:

http://www.fileformat.info/info/unicode ... /index.htm

To ίδιο το πετύχαινεις και με html όπως έψαξα αλλά με την διαφορά ότι στην html δεν περιορίζεσαι τι θα βάλεις στη δύναμη δλδ μπορείς να βάλεις και γράμματα κλπ. Το tag είναι το <sup>...</sup>.

Posted: Mon Jul 04, 2005 8:29 pm
by Einherjar
χεχε :king: