Using Text Components - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Using Text Components

Description:

Styled Text Areas. JEditorPane and JTextPane objects can display text in multiple fonts ... JEditorPane is the foundation for Swing's styled text components ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 24
Provided by: timothy90
Category:

less

Transcript and Presenter's Notes

Title: Using Text Components


1
Using Text Components
JTextComponent
JTextArea
Plain Text Areas
JTextTextField
JEditorPane
JTextPane
JPasswordField
Text Controls
Styled Text Areas
2
Text Field Example
  • Display a labeled text field with the following
    behavior
  • User enters text followed by the Enter key
  • If the entered text is not ''quit'', the text is
    highlighted (selected) and then nothing is done
  • Subsequent typing in the field will cause the
    highlighted text to be erased
  • If the entered text is ''quit'', the program exits

3
Display
After the user enters some text and hits Enter
4
Text Field Code
... JLabel label new
JLabel("Enter a command") JTextField
textField new JTextField(20)
textField.setPreferredSize(new Dimension(50,20))
textField.addActionListener(new
ActionListener() public void
actionPerformed(ActionEvent e)
String command textField.getText()
if (command.equals("quit"))
frame.dispose() // frame is
top-level System.exit(0)
// JFrame
else
textField.selectAll()
) JPanel panel
new JPanel() panel.setLayout(new
BoxLayout(panel, BoxLayout.Y_AXIS))
panel.add(label) panel.add(textField)
frame.getContentPane().add(panel)
frame.setVisible(true) ...
5
Notes On The Code
  • The argument to the JTextField constructor is a
    preferred size for the visible area the length
    of the string entered is not limited
  • As with buttons, text fields are action-based
  • The action listener is created using a
    constructor for an anonymous class that extends
    the action listener interface
  • The getText method returns the entered string
  • The selectAll method highlights the string
  • The label and text field are put into a JPanel
    first otherwise the text field would fill the
    frame

6
Plain Text Areas
  • JTextArea can display and edit multiple lines of
    text
  • Text can be displayed in any font, but all of the
    text is in the same font
  • Use a text area to allow the user to enter
    unformatted text of any length
  • Also can be used to display unformatted help
    information

7
JTextArea Example
... JTextArea textArea new
JTextArea( "This is an editable
JTextArea " "that has been
initialized with the setText method. "
"A text area is a \"plain\" text component, "
"which means that although it can
display text " "in any font, all of
the text is in the same font." )
textArea.setFont(new Font("Serif", Font.ITALIC,
16)) textArea.setLineWrap(true)
textArea.setWrapStyleWord(true) JPanel
panel new JPanel() panel.setLayout(new
BoxLayout(panel, BoxLayout.Y_AXIS))
panel.add(textArea) frame.getContentPane(
).add(panel) // frame is the top-level
frame.setVisible(true) // JFrame
...
8
Example Display
Note that a default text area width was used, and
that the text does not fit in the frame. It
needs to have its text displayed within a scroll
pane.
9
JTextArea Example Modified
textArea new JTextArea(
"This is an editable JTextArea "
"that has been initialized with the setText
method. " "A text area is a
\"plain\" text component, " "which
means that although it can display text "
"in any font, all of the text is in the
same font." ) textArea.setFont(ne
w Font("Serif", Font.ITALIC, 16))
textArea.setLineWrap(true)
textArea.setWrapStyleWord(true)
JScrollPane areaScrollPane new
JScrollPane(textArea) areaScrollPane.setV
erticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
areaScrollPane.setPreferredSize(new
Dimension(200, 150)) panel new
JPanel() panel.setLayout(new
BoxLayout(panel, BoxLayout.Y_AXIS))
panel.add(areaScrollPane)
frame.getContentPane().add(panel)
frame.setVisible(true)
10
New Display
11
Styled Text Areas
  • JEditorPane and JTextPane objects can display
    text in multiple fonts
  • Some allow embedded images and even embedded
    components
  • Require more up-front programming to set up and
    use
  • Exception JEditorPane can be easily used to
    display formatted text from a URL

12
The JEditorPane Class
  • JEditorPane is the foundation for Swing's styled
    text components
  • A JEditorPane object becomes an editor for the
    type of content it is given
  • text/plain plain text
  • text/html Hypertext Markup Language
  • text/rtf Rich Text Format
  • Uses an instance of the EditorKit class to
    accomplish editing tasks
  • Can be used to display uneditable URLs

13
Loading Content into a JEditorPane
  • setText initializes the component from a String
  • read initializes the component from a Reader
  • setPage initializes the component from a URL
  • Besides using these methods, similar loading can
    be accomplished using constructors

14
JEditorPane Example
JFrame frame ... // make top-level window
editorPane new JEditorPane(
"text/plain", "Here is a string of text\n"
"initialized in the constructor.\n"
"Note that we gave the type\n"
"\"text/plain\" as the first argument.")
JScrollPane editorScrollPane new
JScrollPane(editorPane) editorScrollPane.setVe
rticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
editorScrollPane.setPreferredSize(new
Dimension(300, 300)) JPanel panel ... //
make panel to hold editorPane and
// add panel to frame
15
Example Display
16
Loading From URLs
  • Consider the following HTML file, called
    Test.html

lthtmlgt ltheadgt lttitlegtA Test HTML
Pagelt/titlegt lt/headgt ltbodygt lth1gtA Test HTML
Pagelt/h1gt ltcentergt lttable bordergt lttrgtltthgt
Fruits ltthgt Vegetables ltthgt Drinks
lt/trgt lttrgtlttdgt Apples lttdgt Broccoli lttdgt
Milk lt/trgt lttrgtlttdgt Bananas lttdgt Spinach
lttdgt Juice lt/trgt lttrgtlttdgt Oranges lttdgt Carrots
lttdgt Soda lt/trgt lttrgtlttdgt Grapes lttdgt Squash
lttdgt lt/trgt lttrgtlttdgt Lemons lttdgt
lttdgt lt/trgt lt/tablegt lt/centergt lt/bodygt lt/htmlgt
17
Loading From URLs (cont'd)
  • A file URL is of the form
  • fileltdirectorygtltseparatorgtltfilenamegt
  • There is a URL class constructor that takes a
    string representing a file URL specification as
    an argument
  • We could code the specification directly
  • new URL(''file/home/cs/tcolburn.../Test.html'')
  • Or we can use the System class to build the
    specification

18
System Class Properties
  • Java maintains a list of system properties and
    their values, implemented as a hash table. Some
    of them

Property Value os.name
Operating system name os.arch
Operating system architecture os.version
Operating system version file.separator ''/'' on
Unix path.separator '''' on Unix line.separator
''\n'' on Unix user.name User's account
name user.home User's home
directory user.dir User's current working
directory
Use Sytem.getProperty(''ltpropertygt'') to
retrieve a value
19
Example That Loads A File URL
import java.io. import java.net. ...
editorPane new JEditorPane()
editorPane.setEditable(false) try
url new URL("file"
System.getProperty("user.dir")
System.getProperty("file.separato
r") "Test.html")
editorPane.setPage(url)
catch (IOException e)
System.err.println("Attempted to read a bad URL
" url) catch (Exception e)
System.err.println("Couldn't create
URL " url) JScrollPane
editorScrollPane new JScrollPane(editorPane)
... panel new JPanel()
... panel.add(editorScrollPane)
frame.getContentPane().add(panel)
frame.setVisible(true) ...
20
Notes On The Example
  • The URL class is in the java.net package
  • setEditable(false) is used to keep the HTML
    document from being edited
  • new URL(...) can throw an exception if the file
    URL specification is malformed
  • setPage(url) can throw an exception if the URL
    argument cannot be read for some reason

21
Example Output
22
Example That Loads A Network URL
import java.io. import java.net. ...
editorPane new JEditorPane()
editorPane.setEditable(false) try
url new URL("http//www.d.umn.edu/tcolbu
rn/hours.html") editorPane.setPage(ur
l) catch (IOException e)
System.err.println("Attempted to read a
bad URL " url) catch
(Exception e) System.err.println("Co
uldn't create URL " url)
JScrollPane editorScrollPane new
JScrollPane(editorPane) ...
panel new JPanel() ...
panel.add(editorScrollPane)
frame.getContentPane().add(panel)
frame.setVisible(true) ...
23
Example Output
Write a Comment
User Comments (0)
About PowerShow.com