Java - swing - superscript

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Java - swing - superscript

Post by semika » Wed Jun 29, 2005 11:36 pm

Αναρωτιέμαι αν υπάρχει δυνατότητα στην java 1.4.2 να γράψεις κάτι και να εμφανίζεται με μορφή δύναμης. Δηλ 5^2. Xωρίς κάποιο ΑΡΙ. Απλά με τις συν/σεις και τάξεις της java.
Για την ακρίβεια έχω ένα radiobutton και θέλω δίπλα να εμφανίζεται μία δύναμη. Γίνεται??

Ευχαριστώ!
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Thu Jun 30, 2005 12:22 am

Το Μath.pow() δεν κάνει αυτό που θέλεις;
Ni!! Ni!! Ni!!
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Thu Jun 30, 2005 12:56 am

Μάλλον δεν ήμουν σαφής!!!!

Δε θέλω να μου υπολογίζει το αποτέλεσμα πχ 2^5 = 32 (κάτι που όλοι ξέρουμε από το 10 έτος οτι κάνει η pow) αλλά σε ένα label να δείχνει ως βάση το 2 και ως δύναμη το 5. Φαντάσου μία συμβολοσειρά όπως γράφεις στο Word(Formant->Font->Superscript).
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Thu Jun 30, 2005 1:29 am

Ααα! :-D Μπερδεύτηκα επειδή έλεγες ότι θέλεις να εμφανίσεις μια δύναμη...
Δυστυχώς δεν ξέρω πως να εμφανίσεις εκθέτη.
Ni!! Ni!! Ni!!
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Thu Jun 30, 2005 2:24 am

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!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Thu Jun 30, 2005 4:26 am

Μπορέις να βάλεις δύο labels και το ένα να εμφανίζει την βάση και το άλλο τον εκθέτη. Το 2ο απλά θα εμφανίζεται λίγο πάνω και πιο δεξιά και θα έχει και μικρότερο font size.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Thu Jun 30, 2005 10:45 am

Το σκέφτηκα και αυτό αλλά θέλω να είναι δίπλα σε checkbox! Δεν ξέρω αλλά έχω κολλήσει...
User avatar
P3
Venus Project Founder
Venus Project Founder
Posts: 2722
Joined: Mon Mar 22, 2004 4:12 pm
Academic status: Alumnus/a
Gender:
Location: !! El Paso !!

Post by P3 » Thu Jun 30, 2005 10:51 am

Για να μπορείς να τσα βάλεις όπου θέλεις δώσε στο jpanel που δουλέυεις Gridbug (ή κάπως έτσι) layout και θα μπορείς να τα μετακινείς κατα Pixel τα label και τα checkboxes όπου θέλεις.
"Το δικό μου το ποίημα δεν έχει ομοιοκαταληξία.", ο υπογράφων
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Thu Jun 30, 2005 3:14 pm

semika wrote:Το σκέφτηκα και αυτό αλλά θέλω να είναι δίπλα σε checkbox! Δεν ξέρω αλλά έχω κολλήσει...
Βάλε κενό το label του checkbox και κόλλα δίπλα τα άλλα δύο labels. Με code κιόλας μπορείς να αυξομειώνεις τα μεγέθη τους ώστε να είναι πιο ρεαλιστικό και να μην το καταλαβαίνει ο user.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
dimitra
Mbyte level
Mbyte level
Posts: 591
Joined: Sat May 01, 2004 11:29 am
Academic status: MSc
Gender:

Post by dimitra » Fri Jul 01, 2005 2:06 pm

Κι εμένα η γνώμη μου είναι αυτή η πρόταση με το label που θα βρίσκεται μια γραμμή πιο πάνω όπως αυτή ορίζεται με το GridBagLayout και δεξιά και με μικρότερο size το label και η γραμματοσειρά, όπως είπε και ο HdkiLLeR. Στο συγκεκριμένο layout έχεις πάρα πολλές δυνατότητες. Αν θες οποιαδήποτε βοήθεια νομίζω ότι μπορώ να σε βοηθήσω.
Επίσης επειδή δεν έχω ασχοληθεί ιδιαίτερα με τα fonts στη java μπορείς να χρησιμοποιήσεις html σαν text στο component σου αφού τα components της java υποστηρίζουν html.
Η τιμωρία του ψεύτη δεν είναι ότι δεν τον πιστεύουν, αλλά ότι αυτός δεν μπορεί να πιστέψει.

Σω, Τζορτζ Μπέρναρντ
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Sun Jul 03, 2005 11:49 am

Ευχαριστώ. Το έφτιαξα με gridbaglayout!!!
dimitra wrote:μπορείς να χρησιμοποιήσεις html σαν text στο component σου αφού τα components της java υποστηρίζουν html
Ναι το έχω κάνει κι αυτό αλλά δεν παίζει στα option buttons.
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Sun Jul 03, 2005 2:26 pm

Ερώτηση:
To παρακάτω εμφανίζει μια label με italic:

Code: Select all

myLabel.setLabel("<html><I>Test</I></html>");
Υπάρχει κάτι αντίστοιχο για τα Checkbox?? ΓΙατί δεν το βρίσκω λογικό να μην παίζει..... Μήπως κάνω τπτ λάθος??
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Jul 03, 2005 3:20 pm

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>");
:) :).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Sun Jul 03, 2005 3:27 pm

Βασικά ρωτάω αν υπάρχει για Checkbox, γτ για JLabel είναι οκ.
δηλ κάνω

Code: Select all

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

Test

εμφανίζει

<html><i>Test</i></html>
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Mon Jul 04, 2005 2:37 am

Ειλικρινά δεν ξέρω. Μπορείς να βάλεις το checkbox Και το label αυτού με ένα JLabel ώστε να μην έχεις κάποιο prob. Εγώ μόνο labels χρησιμοποιώ είναι τα πιο ευέλικτα.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Mon Jul 04, 2005 2:48 am

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

περισσότερα για τους unicode χαρακτήρες, εδώ και ειδικότερα για μαθηματικούς χαρακτήρες εδώ.
[Better to understand a little than to misunderstand a lot]
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Mon Jul 04, 2005 11:45 am

Einherjar είσαι ΘΕΟΣ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ευχαριστώ πολύ!
(Αν και το είχα κάνει με τον τρόπο του hd και της dimitra) αυτός ήταν συντομότερος και τον προτιμώ! Ευχαριστώ και πάλι!
User avatar
dimitra
Mbyte level
Mbyte level
Posts: 591
Joined: Sat May 01, 2004 11:29 am
Academic status: MSc
Gender:

Post by dimitra » Mon Jul 04, 2005 1:14 pm

Ομολογώ ότι σου βγάζω το καπέλο :) !Πολύ καλό!Εδώ είναι και όλοι οι unicode με την δεκαεξαδική τους αντιστοιχία:

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

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

Σω, Τζορτζ Μπέρναρντ
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Mon Jul 04, 2005 8:29 pm

χεχε :king:
[Better to understand a little than to misunderstand a lot]
Post Reply

Return to “Προγραμματισμός”