If I were going to create a web site for the sole purpose of calling people morons, I would at least make sure it worked without displaying a bunch of error messages. But maybe he's just proving his qualifications to call other people stupid, based on the theory that it takes one to know one.
Don't panic. it's easy. That page gives two solutions.
Here is how to use the second, LineNumberBorder:
import javax.swing.*;
public class UsingLineNumberBorder {
public static void main(String[] args) {
JTextArea area = new JTextArea(40,60);
//HERE IT COMES
area.setBorder(new LineNumberedBorder(
LineNumberedBorder.LEFT_SIDE,
LineNumberedBorder.LEFT_JUSTIFY));
//THAT'S IT!
JFrame f = new JFrame("UsingLineNumberBorder");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new JScrollPane(area));
f.setSize(400,300);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
here you go, sorry it took a while:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.undo.*;
import javax.swing.text.*;
import java.util.*;
class Problem extends JFrame
{
final JTabbedPane jtp = new JTabbedPane();
final JScrollPane scrollPane;
public Problem()
{
super("TextED");
JTextArea textArea = new JTextArea(10, 10);
textArea.setBorder(new LineNumberedBorder(LineNumberedBorder.LEFT_SIDE, LineNumberedBorder.LEFT_JUSTIFY));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
scrollPane = new JScrollPane(textArea);
jtp.addTab("Untitled", scrollPane);
getContentPane().add(jtp);
}
public static void main ( String[] args )
{
Problem frm = new Problem();
frm.setSize( 560, 420 );
frm.setVisible( true );
}
}
actually that bit works fine, but when i try to put it in my "new button" action listener it doesnt work!
fileNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JTextArea textArea = new JTextArea(1, 10);
textArea.setBorder(new LineNumberedBorder(LineNumberedBorder.LEFT_SIDE, LineNumberedBorder.LEFT_JUSTIFY));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textAreas.add(textArea);
JScrollPane newScrollPane = new JScrollPane(textArea);
int index = jtp.getTabCount();
jtp.addTab("Untitled " + (index + 1), newScrollPane);
jtp.setSelectedIndex(index);
contents.add(jtp);
}
});
ok this shows my problem:
http://i41.photobucket.com/albums/e254/frahasio/screenie.jpg
And here is the code for each actionlistener(you'll understand once you've looked at the picture)
NEW:
fileNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JTextArea textArea = new JTextArea(1, 10);
textArea.setBorder(new LineNumberedBorder(LineNumberedBorder.LEFT_SIDE, LineNumberedBorder.LEFT_JUSTIFY));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textAreas.add(textArea);
JScrollPane newScrollPane = new JScrollPane(textArea);
int index = jtp.getTabCount();
jtp.addTab("Untitled " + (index + 1), newScrollPane);
jtp.setSelectedIndex(index);
getContentPane().add(jtp);
}
});
OPEN (only the relevant bit):
JTextArea textArea = new JTextArea(1, 10);
textArea.setBorder(new LineNumberedBorder(LineNumberedBorder.LEFT_SIDE, LineNumberedBorder.LEFT_JUSTIFY));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setText(input);
textAreas.add(textArea);
JScrollPane newScrollPane = new JScrollPane(textArea);
jtp.addTab(title, newScrollPane);
int index = jtp.getTabCount();
jtp.setSelectedIndex(index - 1);
contents.add(jtp);
> You seem to be creating new JTextAreas in your action
> listener there. That's a peculiar way of doing
> things. The normal way would be to clear the existing
> JTextArea and refill it with whatever data you had in
> mind.
i need to create a new textarea as i am putting it a new tab (see screenshot^)
Here's my 30 second take on your code. It's 24 lines long, sopping wet, and it works:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class UsingLineNumberBorder {
public static void main(String[] args) {
final JTabbedPane tabbed = new JTabbedPane();
JButton btn = new JButton("new");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
JTextArea area = new JTextArea(40,60);
area.setBorder(new LineNumberedBorder(
LineNumberedBorder.LEFT_SIDE, LineNumberedBorder.LEFT_JUSTIFY));
tabbed.addTab("...", new JScrollPane(area));
}
});
JFrame f = new JFrame("UsingLineNumberBorder");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(tabbed, BorderLayout.CENTER);
f.getContentPane().add(btn, BorderLayout.SOUTH);
f.setSize(800,600);
f.setVisible(true);
}
}
Could you at least edit this to demonstrate your problem?