wriring code for an EDITOR big problem??


i am developing code for an editor like tool. as we work in some IDE`S like eclipse or netbeans or even any editor like edit plus or notepad++ etc. whenever we write any keyword for specified language that keyword changes it`s attributes eg change in color etc.. i`ve tried my best to do that but it`s not working....
here is the code for that stuff .. actually m is an object for frame and t is JTextPane associated with it
it changes the color of selected text but after updating caret the text changes again it`s color..


import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.text.rtf.*; public class EditorPane extends JTextPane implements CaretListener,KeyListener { private String[] KEY_WORDS={"class","public","void","static"}; String str=""; Font f; Mymenu m; protected RTFEditorKit m_kit; static int count=0; static int edit=0; EditorPane() { } EditorPane(Mymenu m,String text) { super(); this.setText(text); this.m_kit=new RTFEditorKit(); this.m=m; //this.setEditorKit(this.m_kit); JScrollPane ps = new JScrollPane(this); //m.getContentPane().add(ps, BorderLayout.CENTER); m.getContentPane().add(ps); //not working,,... this.str=this.getText(); f=new Font("Dialog",Font.PLAIN,15); setFont(f); this.addCaretListener(this); this.addKeyListener(this); repaint(); } public void caretUpdate(CaretEvent ce) { int i=this.getCaretPosition(); if(i>0) { count=i; } } String[] parse(String text) { String[] tokens=text.split("\\s"); return tokens; } public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub } public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub } public void keyTyped(KeyEvent ke) { char c=ke.getKeyChar(); ke.getKeyLocation(); Thread thread=new Thread(){ public void run() { EditorPane obj=new EditorPane(); try { String text=m.t.getText(); String[] tokens=obj.parse(text); int i=0; for(String tok:tokens) { int j=i; i=i+tok.length(); for(String KEY_WORD:obj.KEY_WORDS) { if(tok.equals(KEY_WORD)) { int caret=m.t.getCaretPosition(); m.t.select(j, i+1); System.out.println(m.t.getSelectedText()); //Font f=new Font(Font.DIALOG,Font.BOLD,20); m.t.setSelectedTextColor(Color.RED); } } } } catch(Exception ex) { ex.printStackTrace(); } } }; if(c==' ') thread.start(); } }
Posted On: Wednesday 17th of October 2012 09:42:30 PM Total Views:  127
View Complete with Replies

RELATED TOPICS OF Swing / AWT / SWT PROGRAMMING LANGUAGE




How to make scrolling area bigger. i.e. increase window size?

I know that you use either the JPanel revalidate() or the JScrollPane revalidate(). Which one I don't know. However, I did both and still it's not resizing. I know that there's some other line of code I needed but can't recall what it was. I thought it might be the JFrame pack() method, but that didn't do it either.
VIEWS ON THIS POST

238

Posted on:

Saturday 22nd September 2012
View Replies!

(jComboBox, JTextField, jFileChooser) as table editor overrides the refrences

In the code below ( complete code is provided), for multiple rows of same table column, I am trying to set an Editable comboBox as editor for first row ( so that the user can select from the available choices or type its own), a filechooser for second row and the default textFiled for the rest of rows. The Problem: and steps to reproduce it: 1- Run the code, 2- click on second row and choose a folder (the row turns yellow) 3- now click on first row to select the type of movie (just click , no need to type anything or to choose) 4- now make another click back on second row(Folder selection) you will see the contents of this row will be copied to first row! I know there are many things that I did not do right, perhaps handling swings which are not thread safe, handling references and so on. I was wondering if you can help me to fix this bug and turn this code to something solid. import java.awt.Color; import java.awt.Component; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import javax.swing.table.TableModel; public class CCellEditor extends DefaultCellEditor { private JTable m_Table = null; public CCellEditor(JFrame parentFrame, JTable table) { super(new JTextField()); super.setClickCountToStart(1); m_Table = table; } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, final int row, int column){ if(row==0) // comBoBox for First row { Object[] objectArray = {"3D","2D"}; JComboBox comboBox = new JComboBox(objectArray); comboBox.setEditable(true); comboBox.setSelectedItem(value); ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED) { if(null != m_Table.getCellEditor()){ m_Table.getCellEditor().stopCellEditing(); } m_Table.setValueAt(e.getItem(), row, 1); } } }; comboBox.addItemListener(itemListener); PopupMenuListener popMenuEvent = new PopupMenuListener() { public void popupMenuWillBecomeVisible(PopupMenuEvent e) { } public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { String sValue = (String)m_Table.getValueAt(row, 1); if(null != m_Table.getCellEditor()){ m_Table.getCellEditor().stopCellEditing(); } m_Table.setValueAt(sValue, row, 1); } public void popupMenuCanceled(PopupMenuEvent e) { } }; comboBox.addPopupMenuListener(popMenuEvent); return comboBox; } else if(row==1) // fileChooser for Second row { JFileChooser fileChooser; fileChooser = new JFileChooser("c:\\"); fileChooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY ); fileChooser.setVisible(true); int returnVal = fileChooser.showOpenDialog(null); JTextField textField = (JTextField)super.getTableCellEditorComponent(table, value, isSelected, row, column); textField.setBackground(Color.yellow); if (returnVal == JFileChooser.APPROVE_OPTION) { File m_fFirmware= fileChooser.getSelectedFile(); textField.setText(m_fFirmware.getPath()); return textField; }else { return textField; } } // for any other rows JTextField textField = (JTextField)super.getTableCellEditorComponent(table, value, isSelected, row, column); return textField; } public static void main(String[] a) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String[] columnTitles = { "Name", "Value"}; Object[][] dataEntries = { { "Movie Type:", "3D" }, {"Folder:","C:"}, {"# of Movies requested:","5"}}; TableModel model = new EditableTableModel(columnTitles, dataEntries); JTable table = new JTable(model); table.createDefaultColumnsFromModel(); table.setDefaultEditor(Object.class, new CCellEditor(frame, table)); frame.add(new JScrollPane(table)); frame.setSize(300, 200); frame.setVisible(true); } }
VIEWS ON THIS POST

160

Posted on:

Sunday 23rd September 2012
View Replies!

Understanding cell editor in JTable

I am trying to learn about cell editors in JTable (swing). I am now studying this example: http://docs.oracle.com/javase/tutorial/displayCode.htmlcode=http://docs.oracle.com/javase/tutorial/uiswing/examples/components/TableFTFEditDemoProject/src/components/IntegerEditor.java There are a few things I don't understand. I'd be happy if you could help me better understand this example. The first line of getCellEditorValue() is: JFormattedTextField ftf = (JFormattedTextField)getComponent();
VIEWS ON THIS POST

110

Posted on:

Monday 24th September 2012
View Replies!

How to make the window (JPanel?) bigger in gridbaglayout

When I run this program, the window pops up and everything is smooshed (for lack of a better term) together. How do I change the size of it I'm using GridBagLayout.
VIEWS ON THIS POST

162

Posted on:

Saturday 29th September 2012
View Replies!

how to turn off the word wrap in jeditorpane?

my jeditorpane automatically wrap the words ..i dont want that , all i want is a horizontal bar to appear and user can write as long as he can how to do that i have tried couple of methods like i have override the getScrollableTracksViewportWidth() but that didnt help , does any one know how i can turn off the word wrap
VIEWS ON THIS POST

62

Posted on:

Tuesday 2nd October 2012
View Replies!

problem in attached file .

Help me out in solving 1 error in my code: /* please run this code and try to sort out the error.*/ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.*; import java.util.Enumeration; import java.util.zip.*; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Zip extends JPanel implements ActionListener { JButton button1, button2, button3; JFileChooser chooser; String choosertitle; JTextField field1, field2; //private int BUFFER; static final int BUFFER = 2048; public Zip() { this.setLayout(null); button1 = new JButton("Browse"); button2 = new JButton("Browse"); button3 = new JButton("Zip"); field1 = new JTextField(); field2 = new JTextField(); field1.setBounds(30, 50, 200, 25); button1.setBounds(240, 50, 100, 25); this.add(field1); this.add(button1); field2.setBounds(30, 150, 200, 25); button2.setBounds(240, 150, 100, 25); this.add(field2); this.add(button2); button1.addActionListener(this); add(button1); button2.addActionListener(this); add(button2); button3.setBounds(30, 200, 90, 25); this.add(button3); button3.addActionListener(this); add(button3); button1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { button1actionPerformed(e); } }); button2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { button2ActionPerformed(e); } }); button3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { button3ActionPerformed(e); } }); } public void unzip(String argv){ try { BufferedOutputStream dest = null; BufferedInputStream is = null; ZipEntry entry; ZipFile zipfile = new ZipFile(argv); Enumeration e = zipfile.entries(); while(e.hasMoreElements()) { entry = (ZipEntry) e.nextElement(); System.out.println("Extracting: " +entry); is = new BufferedInputStream (zipfile.getInputStream(entry)); int count; byte data[] = new byte[BUFFER]; FileOutputStream fos = new FileOutputStream(entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ((count = is.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, count); } dest.flush(); dest.close(); is.close(); } } catch(Exception e) { e.printStackTrace(); } } public void button2ActionPerformed(java.awt.event.ActionEvent e) { int result; /* Chooser frame=new Chooser(); field2.setText(frame.fileName1);*/ chooser = new JFileChooser(); //chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle(choosertitle); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // // disable the " files" option. // chooser.setAcceptFileFilterUsed(false); // if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); field2.setText(chooser.getSelectedFile().toString()); } else { System.out.println("No Selection "); } } public void button1actionPerformed(java.awt.event.ActionEvent e) { int result; /* Chooser frame=new Chooser(); field2.setText(frame.fileName1);*/ chooser = new JFileChooser(); //chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle(choosertitle); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // // disable the " files" option. // chooser.setAcceptFileFilterUsed(false); // if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); field1.setText(chooser.getSelectedFile().toString()); } else { System.out.println("No Selection "); } } public void button3ActionPerformed(java.awt.event.ActionEvent evt) { this.zip (field1.getText()) ; } /* private void zip(String argv[]) { try { BufferedInputStream origin = null; FileOutputStream dest = new FileOutputStream("c.zip"); ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest)); //out.setMethod(ZipOutputStream.DEFLATED); byte data[] = new byte[BUFFER]; // get a list of files from current directory File f = new File("."); String files[] = f.list(); for (int i=0; i
VIEWS ON THIS POST

184

Posted on:

Wednesday 17th October 2012
View Replies!

getting a problem ,can't see the button

hi , i was testing out card layout. What i want in my application is three panels At first i want the frame to be Divided into two panels and then add buttons on it . This is where the problem is coming. The button is not visible on the panel . It is visible when i remove the second panel . Another question is that can i control the size of the button on it here's the full code : import java.awt.event.*; import java.awt.*; public class CardLayoutEg extends Frame { public static void main(String... args) { CardLayoutEg cd=new CardLayoutEg(); cd.setVisible(true); } private Panel p1,first,second,third; Button b1; CardLayoutEg() { setSize(700,800); p1=new Panel(); Checkbox c1=new Checkbox("wierd"); b1=new Button("next"); b1.setBounds(40,50,200,100); p1=new Panel(); p1.setLayout(null); first=new Panel(); second=new Panel(); third=new Panel(); first.add(c1); first.add(b1); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CardLayout c=(CardLayout)p1.getLayout(); c.next(p1); } }); p1.setSize(700,600); third.setSize(700,200); p1.setLayout(new CardLayout()); p1.add(first,"1"); p1.add(second,"2"); first.setBackground(Color.green); second.setBackground(Color.red); add(p1); add(third); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
VIEWS ON THIS POST

185

Posted on:

Wednesday 17th October 2012
View Replies!

Scroll panel problems

I am having alot of problems getting this scroll panel to work. Specifically I have the [panel on my GUI, but I cant figure out how to get the text area to populate it. Can someone please tell me what I a,m doing wrong here. These are the code portions that pertain to the scroll panel only. private JTextArea jtextarea1;//define textarea private JScrollPane scrollpane1;
VIEWS ON THIS POST

197

Posted on:

Wednesday 17th October 2012
View Replies!

if statement problem

I am new to Java Scripting and I am trying to write some code or if statement for the following. I have 2 JButtons (one labeled btnAddTwo and one lableled btnSubOne) and one text field.I am trying to get the btnAddTwo to add 2 when I click it and the btnSubOne to subtract one from the total in the text field. I built my program in netbean as a gui frame. Everthing works except for my counting.
VIEWS ON THIS POST

181

Posted on:

Wednesday 17th October 2012
View Replies!

Printing invicible JTable with Column removed - JTable.PrintMode.FIT_WIDTH problem

My JTable is a table with some columns including a checkbox column. When the user clicks on the print button, the program will create an invisible copy of the visible table, then add a rowsorter to exclude all the rows with a checkbox that is set to false. then remove the checkbox column from the table. For the table to print I manually change the size of the table (else the content will not print). That is how I set up the table, I hope it made sense. But it is when I set the table to print with JTable.PrintMode.FIT_WIDTH thats not working as it should. The table is not printed across the whole page, like it still believes that the removed column is still there, resulting in that the rigthmost column will be cut, and not all data will be printed. I don't have this problem when printing JTable.PrintMode.NORMAL. I hope my explanation made sense. I have tried a long time to fix this but without result. I'd be gratefull if someone could help me. Here is the code. edit: I have removed the code till someone who knows tells me it is okay (see the two posts below).
VIEWS ON THIS POST

179

Posted on:

Wednesday 17th October 2012
View Replies!

tablecelleditor doesn't call setvalueat

Hi There, I use comboboxes within my JTable. If I use the DefaultCellEditor, it calls the setValueAt() method of my TableModel perfectly so that I can change the content of my model. However, if I use my custom TableCellEditor, it doesn't call the setValueAt() method. Any idea how I can "convince" my TableCellEditor to call setValueAt() when its value changes
VIEWS ON THIS POST

113

Posted on:

Wednesday 17th October 2012
View Replies!

Tricky JTextArea problem

I have a JTextArea (or more than one) inside a JScrollPane The JScrollPane, has VERTICAL_SCROLLING_AS_NEEDED, no horizontal scrolling. When the frame is resized the scrollpane resizes accordingly. My problem is: Suppose I have 1000 words of text to put into the JTextArea. If I squash the frame horizontally, the words wrap around which is fine, and vertically, the scrollbar kicks in. But I just want to display 3 lines of text, and always finish with three dots ... when there is more text, but no room for it. I used setPreferredSize on the JTextArea which makes sure I get three lines worth. But when I select the text, the left over text is still hidden below the 3 lines. I don't want to display this text, just use 3 dots... Can anyone help
VIEWS ON THIS POST

199

Posted on:

Wednesday 17th October 2012
View Replies!

thread problem

In a swing application, when ok button is clicked, i want to new a class ScanCard (implements ScannerListener and PropertyChangeListener), and I want to wait till ScanCard is finished then doAction(), if like the code showed, the doAction() is performed before or during ScanCard runing, what should I do to achieve the purpose this.okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent aEvt){ if (btnGroup.getSelection() == null) doSomething; else { dispose(); try { ScanCard scanCard = new ScanCard(); if (true) doAction(); }catch() {} } } });
VIEWS ON THIS POST

239

Posted on:

Wednesday 17th October 2012
View Replies!

problem drawOval() cant be found.

I am trying out this tutorial to get this drawOval() to work but the compiler tells me that the drawOval cant be found. I triple checked that my initialization is in place, and I have imported the proper library to get it to work. So I am at a loss here. my code: import java.awt.*; import java.awt.Graphics; import javax.swing.*; import javax.swing.event.*; public class Oval_Sub extends JFrame { private JSlider slider; private drawOval myPanel; public void Oval_Sub() { super("the title"); myPanel = new drawOval(); myPanel.setBackGroundColor(Color.ORANGE); // SwingConstants.HORIZONTAL sets the slider to move left to right or vise versa // 0, 200 sets the min and max value the slider has on the appropriate ends slider = new JSlider(SwingConstants.HORIZONTAL, 0, 200, 10); // sets the ticks or hash marks on the slider to determine intervals in values // the argument 10 refers to setting a tick every 10 pixels slider.setMajorTickSpacing(10); slider.setPaintTicks(true); slider.addChangeListener( new ChangeListener() { public void StateChanged(ChangeEvent e) { // setD() comes from Oval.java // get the value from slider and pass it to setD() myPanel.setD(slider.getValue()); } } // end ChangeListener() ); // end addChangeListener(); add(slider, BorderLayout.SOUTH); add(myPanel, BorderLayout.CENTER); } }
VIEWS ON THIS POST

215

Posted on:

Wednesday 17th October 2012
View Replies!

interface updating problem

Hi all, I am displaying image histograms on a user interface. Each histogram is represented by a class I wrote which extends JComponent. The painting is done the proper way through paintComponent and repaint() and it works great. In my GUI constructor, I display the histograms.. pane7.add(graphs[0]); pane7.add(graphs[1]); pane7.add(graphs[2]);
VIEWS ON THIS POST

200

Posted on:

Wednesday 17th October 2012
View Replies!

GUI Fluctuation problem in swing

I have a dialogue in which i am entering values. After submit I am checking for duplicate values in database and if exist I am again creating the same dialogue. As it can happen many times. I want to continue with that code. So I have used while loop and I am checking the flag value which I get after calling action_insertok() See the code while (!result) { result=true; DialogFactory.showDialog(null, "Add Assessment Type", assessDialogPage, new ACTION_InsertOk(), true, true); }
VIEWS ON THIS POST

251

Posted on:

Wednesday 17th October 2012
View Replies!

JTable and data binding problem [please close, found solution]

, I am using NetBeans 6.8 and got some problems when I want to add something to binded data. I have created a JTable (myListTable) that is binded with LinkedList (myList). I have created JButton (addRowButton) that should add new MyItem to myList which (probably) should add a row with that item to myListTable... and this is where the problem occurs. Firstly I have tried this:@Action public void addRow() { myList.add(new MyItem(myList.size(), "Random num: "+Math.random())); }
VIEWS ON THIS POST

164

Posted on:

Wednesday 17th October 2012
View Replies!

problem of MouseListener interface

I'm developing a dialog for that I've written a class. In that class I've to implement an interface MouseListener but dont want to implement all method. but I have already extended one class JDialog. Is there any way to not to implement all method
VIEWS ON THIS POST

225

Posted on:

Wednesday 17th October 2012
View Replies!

JProgressbar problem!

Hi Members, First of all thanks to Javaranch for providing this nice tutorial JProgressBar. This has almost solved my problem. I am not able to understand that how should I calculate and update my JProgessBar in case of reading long file and parse it accordingly. Each time the progress bar does not update immediately . I do not know how should I do
VIEWS ON THIS POST

160

Posted on:

Wednesday 17th October 2012
View Replies!

JTable printing problem

I have sample of JTable with data that i would like to be right aligned, also orange background color cell renderer is applied, and font is set to be Tahoma BoldItalic with font size of 13. Problems that arise are, grid lines are over cell text, and also applied background color looks strange when PDF printer is used and document is zoomed. Interesting thing is that when font is set to be even grid lines doesn't intersect cell text. import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.JTable.PrintMode; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class TablePrintTest extends JFrame { private static final long serialVersionUID = 1L; private static final Object[] COLUMN_NAMES = { "Column1", "Column2", "Column3" }; private static final Object[][] CELL_VALUES = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; private JButton printButton; private JTable table; public TablePrintTest() { super("TablePrintTest"); createGui(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private void createGui() { table = new JTable(new DefaultTableModel() { private static final long serialVersionUID = 1L; @Override public Class getColumnClass(int columnIndex) { return Number.class; } @Override public int getColumnCount() { return COLUMN_NAMES.length; } @Override public int getRowCount() { return CELL_VALUES.length; } @Override public String getColumnName(int column) { return COLUMN_NAMES[column].toString(); } @Override public Object getValueAt(int row, int column) { return CELL_VALUES[row][column]; } }); table.setDefaultRenderer(Number.class, new DefaultTableCellRenderer() { private static final long serialVersionUID = 1L; @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JLabel label = (JLabel) super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); label.setHorizontalAlignment(SwingConstants.RIGHT); return label; } public java.awt.Color getBackground() { return Color.orange; }; }); table.setFont(new Font("Tahoma", Font.ITALIC | Font.BOLD, 13)); printButton = new JButton("Print"); printButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Printable printable = table.getPrintable(PrintMode.NORMAL, null, null); PrinterJob pJob = PrinterJob.getPrinterJob(); pJob.setPrintable(printable); if (pJob.printDialog()) { try { pJob.print(); } catch (PrinterException e1) { e1.printStackTrace(); } } } }); JPanel contentPane = new JPanel(new BorderLayout()); contentPane.add(printButton, BorderLayout.NORTH); contentPane.add(new JScrollPane(table), BorderLayout.CENTER); setContentPane(contentPane); pack(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new TablePrintTest().setVisible(true); } }); } }
VIEWS ON THIS POST

530

Posted on:

Wednesday 17th October 2012
View Replies!