JViewport.setViewPosition() behavior, with JTable having varying rowHeights

Hi,
When I hide certain columns (eg Image columns) in my JTable, I need to decrease row heights, making the table smaller (but still having the same number of rows). In this case, I determine the first row visible at the top of the view, then I successfully use JViewport.setViewPosition() to move to that row after I hide columns and decrease the row heights. (I tried scrollToVisible() but that was a disaster)
When I expose the hidden column, I need to increase row heights for the Images, so now the table is bigger, and I still wish to maintain the same position (row #) in the expanded table. I use JTable.setRowHeight( ) for those rows, and JViewport.setViewPosition() to move to the row that was at the top of the previous view, just as before.
This only works for the first few rows - if I scroll down the table past some row # (row 16 in my case), and try to show hidden columns, the columns appear, the row heights are correct, BUT the new view position never gets beyond row 16. I've checked my code, and I am trying to move to a legal position in the y-sense, so there must be something funky happening inside of the setViewPosition() method.
Does anyone have any knowledge of what really goes on in there? The Java source code looks quite complex.
thanks,
jpl

I have a lot of experience but still need a lot of code (for this).. [email protected] if you're ..........

Similar Messages

  • Mouselistner is not working with jtable in the browser

    Hi
    I am having a problem with jTable.
    I added a mouselistener to table header to sort table but when i run that applet from my netbean ide it works fine but when i run that applet in my browser it doesn't work, i have tested, its not even generate mouseclick event .Please help me guys.
    I call this function after calling initComponents() method of JApplet.
    public void setTableAction()
    //set mouselistener to sort table on click of table header
    final JTableHeader head= jTable1.getTableHeader();
    head.addMouseListener(new java.awt.event.MouseAdapter()
    public void mouseClicked(java.awt.event.MouseEvent evt)
    Vector data= ((DefaultTableModel)jTable1.getModel ()).getDataVector();
    sortTable(data, head.columnAtPoint(evt.getPoint()));
    //set action map to change the default action performed for enter key pressed
    InputMap imap = jTable1.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    KeyStroke enterKey = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
    KeyStroke tabKey = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
    final Action oldAction= jTable1.getActionMap().get(imap.get(tabKey)); // get map to set enter key.
    imap.put(enterKey, "enter"); // set enter key
    Action newAction = new AbstractAction(){
    public void actionPerformed(ActionEvent e) {
    oldAction.actionPerformed(e);
    JTable table= (JTable)e.getSource();
    table.changeSelection(0,0,false,false);
    if(table.isCellEditable(0,0))
    String sTemp= (String)table.getValueAt(0,0);
    if(sTemp.length()>0) {
    if(bRenewItem)
    retrieveRcodeDetails("",sTemp);
    else
    processRCodeDetails(sTemp, e);
    }else
    table.editCellAt(0,0);
    jTable1.getActionMap().put("enter", newAction);
    jTable1.setPreferredScrollableViewportSize(jTable1.getPreferredSize());
    }

    Hi,
    I also am using the Bépo layout with an encrypted drive and encountered the same problem: the Return key does not work.
    It seems to work fine if you use the fr-bepo-latin9 keymap.
    # /etc/vconsole.conf
    KEYMAP=fr-bepo-latin9
    But I also looked at the files /usr/share/kbd/keymaps/i386/bepo/fr-bepo.map.gz and /usr/share/kbd/keymaps/i386/bepo/fr-bepo-latin9.map.gz (you can open gzipped files in vim directly). fr-bepo-latin9.map.gz defines keycode 28 (Return) but fr-bepo.map.gz does not.
    I modified fr-bepo.map.gz:
    # vim /usr/share/kbd/keymaps/i386/bepo/fr-bepo.map.gz # Append that line : "keycode 28 = Return".
    # mkinitcpio -p linux # Rebuild the initramfs.
    The Return key now works, but the Backspace (14, "Delete") and Shift (54) keys don’t work. I found that both the cf.map.gz (french canadian layout) and fr-bepo-latin9.map.gz files define those keycodes as well as other non-printing keys so I copied the following lines from fr-bepo-latin9.map.gz to fr-bepo.map.gz:
    keycode 1 = Escape Escape
    keycode 14 = Delete Delete
    keycode 15 = Tab Tab
    keycode 28 = Return
    keycode 29 = Control
    keycode 42 = Shift
    keycode 54 = Shift
    keycode 56 = Alt
    keycode 58 = Caps_Lock
    keycode 97 = Control
    It works! Don’t forget to rebuild the initramfs after you change the keymap file.
    # mkinitcpio -p linux
    I will send a message to the kbd and bépo projects mailing lists and report back.

  • Strange window behavior with CS5

    I have begun experiencing strange behavior with PS CS5. I should begun with the machine configuration: 2.66GHz iMac (8,1) Intel Core Duo with 4GB RAM and OSX 10.6.6, Radeon HD 2600 Pro graphics card. The initial symptom showed up suddenly as an inability to display an image window; that is, I could open PS normally, everything would show up properly, but when I opened an image file of any sort, there would be no image window. Other cues indicated that the file was open; for example, the window menu would show it selected, and the layers palette would show the file's layers.
    It did not seem to matter what type of file was involved: PSD, JPG, TIF, whatever. Occasionally, this behavior would begin during a session. Sometimes it would happen right off the bat. Sometimes, stopping and restarting PS seemed to clean things up; other times, this had no effect. After messing around quite a bit with different permutations and combinations, all I could say was that the problem was random.
    I might add that I've had PS CS5 on this machine pretty much since it was announced, and had not had problems with it before. So this issue came along quite suddenly a couple of weeks ago. This was a little after I'd installed an update for Nik's Viveza 2; and I began to suspect that. Although why Viveza should do such a strange thing was odd, and Viveza was never part of the files I was experiencing issues with. Anyway, I went back to an earlier version of Viveza and the problem persisted.
    Since I run Time Machine, I also went back to versions of the entire PS folder from a month back, and found the same problem. Along the way, I experimented with the files I was using with PS CS4 & CS3, which I also have installed on this machine. These two versions of PS run perfectly well. At least the CS4 version has precisely the same plugins as the CS5 folder, and this seems to discount the potential problem with plugins.
    To be sure about CS5, I completely deactivated, deinstalled, and reinstalled it. The same issues occurred. Now, I have to admit that I let PS run its update process so that I brought it back to the most recent version in this step of my troubleshooting. So, I can't be certain that the issue isn't with some update of CS5.
    I might add that I have been running CS5 in 32-bit mode, for compatibility with certain plugins. This may or may not be an issue, since I have limited experience with running in 64-bit mode. At this point, I should add a bit more about the confusing behavior.
    While messing around with CS5, I also suspected the GPU support, since my problem had to do with windows. When the problem presents itself, the usual cycle through window views that you get by pressing the "F" key seems to get messed up. In particular, the "F" key doesn't work at all. Next, if you use the View menu to select different views, the full screen with menu bar view will often have garbled pixels, while the full screen view will show a blank grey screen. Then, cycling back to a window view will show a window with blank grey contents. This is interesting since the starting point was no window at all; but going into full screen and then back will produce a window with bogus contents.
    Now, the next strange thing, having to do with the GPU, is that CS5 often fails to recognize the Radeon HD 2600 card. Oddly enough, it did originally. And I had it running in Basic mode. However, CS4 does recognize the GPU; and I can set it in any variety of modes: Basic, Normal, and Advanced. This behavior is not consistent at all either; that is, while CS5 almost always now fails to detect the GPU, sometimes it does. As near as I can tell, this failure to detect the card does not depend upon whether I start CS5 in 32-bit or 64-bit mode. OTOH, CS4 always recognizes the GPU.
    Another form of this odd behavior arises if I start CS5 cold, and then just open a new blank window. This almost always works. I get a blank white window, and I can paint on it with a brush, etc. However, if I go ahead at this point and open a file, then the new file takes over the window; and there are no tabs. If I select the original new file, usually labelled "Untitled", the window bar will show the change of filename but the window's contents and the layers palette will continue to show the old file that I had opened. Cycling through views can sometimes get back to the new Untitled file, but just selecting file windows never works.
    Yet another aspect of this messed up window behavior is that the workspace bar, which shows the Bridge, MiniBridge and view icons on the upper left and the various workspace options and CS Live on the upper right, is present but blank. OTOH, the tool bar is always displayed correctly, as is the horizontal bar that shows the various tool options. Likewise, the palettes for the workspace such as layers, swatches, adjustments, and so on, are always correctly displayed on the left.
    My next steps in trying to figure this out will be to ensure that I am running the latest of all plugins so that I can get everything running in 64-bit mode and try this again. However, the single factor that seems consistent in this whole mess is that whenever I do find this odd behavior, the performance preferences window will indicate that CS5 is not detecting the GPU. Whenever this happens, if I open up CS4 and check the same performance preference in it, the GPU is detected. I can have the two preference windows side by side on the screen in fact, CS4 sees the GPU and CS5 does not. The counter-indication is that sometimes CS5 will work properly and the preferences window still shows that the GPU has not been detected. Having said that, I can add that if I have opened up CS5, and it has found the GPU, and I have set it into, say, Basic mode, and then later found CS5 messing up, and I go back and check the performance preferences again, the GPU has always been lost. So, CS5 can mess up windows with or without the GPU detected and active; but when if it started with the GPU present, it will show up as lost after the weird behavior starts.
    To add one more observation, I have had Macs and other computers with failing GPUs. This computer is showing none of the typical signs of that. Every other program seems to be working just fine, and I have a lot of these, many graphics intensive; e.g., Corel Painter 11, Parallels v6 running Windows 7, PS CS4, Lightroom v3, Aperture v3, and so on. It is just CS5 that is messing up.
    I could load up this message with screen shots of all this nonsense, but I'm not sure what that would add to the strange tale, other than I'm not pulling your legs. I am, however, pulling out my own hair.
    As I stated before, this began quite suddenly a couple of weeks ago, early Feb 2011. My best guess as to cause is some combination of incompatible updates between CS5, OSX, and maybe some plugin or other. I found unusual behavior with onOne's FocalPoint v2 last year after Apple updated GPU drivers in some OSX update, and cratered that program. It took onOne a month or two to fix that. I have CS5 on a laptop with the same OSX version, and on that I haven't seen these issues; but then, I haven't been using it as intensely over there. Also, that machine has different CPU and GPU models than this iMac.
    So, to the community: is anybody else starting to see this odd stuff? Am I alone?

    Here's the reason I say that the same plugins exist for both CS4 & CS5. Sometime last year, the internal hard drive on this computer died (as they so often do), and it was replaced under the Apple care warranty. As a consequence, I decided to rebuild the OS and applications from scratch and bring back my user files from backup. I among other things, I reinstalled all of CS4 as well as CS5 (and I had to put CS3 back too for reasons having to do with printing calibration images for Quad Tone RIP). Then, I went to reinstall the plugins that I needed. I use Nik Software, onOne, Portrait Professional and various Topaz plugins. To my recollection, most of these install in PS CS3, CS4, CS5, Aperture, and Lightroom. In short, it is not that I've copied or moved plugin folders from one application folder to another, just that the installers automatically detect the presence of the various applications and put the various plugins into each, as appropriate.
    The only 32-bit plugins that I have that don't fit into this category are from Vincent Versace. He provides special versions of certain Nik plugins (Tonal Contrast, Contrast Only, etc) that function with some Acme Educational extensions for performing B&W conversion, sharpening, blah blah blah. These plugins are only 32-bit and the extensions are only CS5 compatible. I've installed these ones only into CS5; so, you've got me. OTOH, I've had these from Vincent as soon as CS5 was available; and they've worked so far without problems. Perhaps I should just edit the extensions so I could use the latest plugins direct from Nik instead of the Versace special editions...
    I've checked fonts and repaired permissions. I am presently going through the rather tedious process of disabling plugins and extensions to see if anything yields consistent results. The rather random arrival of the strangeness makes ensuring that a change is really having an effect more difficult to validate, as you will appreciate.
    I apologize for my long-winded original post. I add all of the detail so that anyone who'd experienced similar strange behaviors might properly pattern-match what they were seeing. On the one hand, in finding the cause of a problem, you look for what's changed; and theoretically nothing is new. On the other hand, there's always so much changing behind the scenes with automatic updates of this, that, and the other thing that it's impossible to make the claim that nothing's new. 

  • Strange Permissions Behavior with Public/Private Drop Box

    Strange Permissions Behavior with Non-Course Drop Box
    In an effort to promote iTunes U on campus this semester (and to get people working with audio and video more) we're having a contest in which people can submit personal or group audio/video projects.
    This being an iTunes promo, we intend for students to submit their contributions via a drop box.
    To that end, I began experimenting with drop boxes in iTunes U, which I haven't done much of previously. I've created a course called "iTunes U Drop Box Test" under "Campus Events". Within that, I have two tabs: "Featured Submissions" and "Dropbox". My goal with this drop box was to allow faculty, students and college folks the ability to use the drop box ("college" being a role I've defined for those who don't fit into the faculty/student roles).
    When I first started experimenting, access to the "iTunes U Drop Box Test" course looked like this:
    --- Credentials (System) ---
    Edit: Administrator@urn:mace:itunesu.com:sites:lafayette.edu
    Download: Authenticated@urn:mace:itunesu.com:sites:lafayette.edu
    Download: Unauthenticated@urn:mace:itunesu.com:sites:lafayette.edu
    Download: All@urn:mace:itunesu.com:sites:lafayette.edu
    --- Credentials ----
    Download: College@urn:mace:lafayette.edu
    Download: Instructor@urn:mace:lafayette.edu
    Download: Instructor@urn:mace:lafayette.edu:classes:${IDENTIFIER}
    Download: Student@urn:mace:lafayette.edu
    Download: Student@urn:mace:lafayette.edu:classes:${IDENTIFIER}
    For the "Featured" Submissions tab, I gave the non-system credentials the "download" right, and for the "Dropbox" tab I gave the non-system credentials the "dropbox" right.
    My understanding of this setup is that everyone should have had the ability to view the course and the contents of the "Featured Submissions" tab and that those in the College/Instructor/Student roles would be able to upload files via the "Dropbox" tab ... but not see the contents of said tab after the files were uploaded (aside from any files they uploaded themselves).
    This is not the behavior we saw however. While the College/Instructor/Student roles could upload files to the dropbox, everyone (including the unauthenticated public) was able to see all of the contents of the dropbox.
    The only way I could get this to work as advertised was to change all of the system credentials save the "Administrator" to "No Access":
    --- Credentials (System) ---
    Edit: Administrator@urn:mace:itunesu.com:sites:lafayette.edu
    No Access: Authenticated@urn:mace:itunesu.com:sites:lafayette.edu
    No Access: Unauthenticated@urn:mace:itunesu.com:sites:lafayette.edu
    No Access: All@urn:mace:itunesu.com:sites:lafayette.edu
    Once I did this, everything worked as advertised: College/Instructor/Student roles could upload tracks, and the "Dropbox" tab would only display tracks they uploaded.
    So my question is ... is this the correct behavior for the drop box? It looks like when the system credentials are in play, they're simply overriding whatever the normal "view" rule is for the drop box, which doesn't seem right.

    Your current configuration where things work as you wanted does seem correct to me. You are not using any System Credentials to accomplish the functionality and that's fine.
    Here's some more info to clarify how / why this is working for you and why you had to set "No Access" for the System Credentials:
    The System Credential "Authenticated@..." is going to get assigned to any user that goes through your transfer script. Even if you transfer script assigns no credentials to a user, upon entering iTunes U they will have at least 1 - the "Authenticated@..." credential. Therefore, unless you block access using "No Access", any user that passes through your transfer script is going to be able to access the area in question.
    When you change values for "Unauthenticated@..." or "All@..." you are defining what someone that DOES NOT pass through your transfer script can do. You want both of those to be "No Access" at the top level of your site if you do not want unauthenticated visitors.
    The distinction between "Unauthenticated" and "All" is that "All" applies to all users whether they pass through the transfer script or not.
    Here's another way to remember things:
    User passes through your transfer script, iTunes U automatically assigns:
    Authenticated@....
    All@....
    User does not pass through your transfer script and instead access your iTunes U site through derivable URL*, they get assigned:
    Unauthenticated@....
    All@....
    *The derivable URL for a site is: http://deimos.apple.com/WebObjects/Core.woa/Browse/site-domain-name
      Mac OS X (10.4.6)  

  • Strange behavior with DefaultCellEditor

    Hello everybody,
    I found a strange behavior with DefaultCellEditor using a JTextField in a JTable. The following line will show, what I mean:
    setDefaultCellEditor(String.class,new DefaultCellEditor(new JTextField()));
    Imho this should do the same as JTable does already, when it installs a JTextField as default cell editor for cell values of the String class. But, it seems, that it is not the same:
    When I add this line in the constructor of a JTable subclass the editor component seems to be less wide and less high to the right and bottom - it looks so with Win95 with JDK 1.4.0 - but with Win2000 it is correct for example.
    My question is - how can it be, that the normal default cell editor does not have this behavior but when I use the line above, it is displayed in the wrong way?- What does the default cell editor in another way than I do it, that it has not this ugly display?
    I would like to look in the sources, but unfortunately I can't find the source code in JDK 1.4.0 - perhaps you have a hint, where to find it.
    greetings Marsian

    It seems the Label doesn't like it, that it is in a GridCell with rowspan = 2
    If it is in a normal cell (no rowspan), it works.
    If I add ColumnConstraints to the gridpane, it kind of works, but the Label still occupies more space than it should.
    Edited by: csh on 19.07.2012 03:51

  • Strange behavior of JTable..Help plz

    Hi,
    Assume i have 5 rows in my JTable. I wrote a function on right click i get a popup window with an option delete row, which deletes the row successfully,
    The problem is when i sort the data in JTable. on column click JTable is getting sorted, in which assume 2nd row got replaced with 4th row and vice versa.
    Now when i try to delete the 4th row, it is delete the 2nd row data, which was there at the place of 4th row before sorting. In this regard i am trying to print the row number before deleting. It is displaying as 4th, but deleting 2nd row.
    Hope i am clear. Please suggest me in solving this strange behavior of JTable sorting problem.
    Regards,
    Ravi

    MyTableModel tablemodel = new MyTableModel(colnames,values);
    TableSorter sorter = new TableSorter(tablemodel);
    JTable table = new JTable(sorter)
    tablemodel.removeRow(row); // last line is the code where i am deleting the row, it's deleting the wrong row.
    do i need to remove the last line code and make respective changes in TableSorter.java class.
    ore
    here itself do i need to do some changes. ?
    There is a method that will convert the view row to the model row private Row[] getViewToModel()
    my question is how TableSorter.java class comes to know that i am deleting the perticular row.

  • JComboBox With JTable as Editor

    Hi everybody
    I'm working with JTable and having a ComboBox as first CellEditor. for that purpose i used following code
            cmbFeeType.setModel(new javax.swing.DefaultComboBoxModel(DefaultFee.FeeTypeItemList()));       
            DefaultCellEditor DCEFeeType = new DefaultCellEditor(cmbFeeType);
            DCEFeeType.setClickCountToStart(2);here DefaultFee.FeeTypeItemList is a vector returns array. This is working fine except that the ComboBox remains visible till I dobule clik on a column for editing. Then It becomes invisible and works fine.
    my JComboBox is a seperate Control on a JFrame I do not want to use
    Class FeeTypeEditor extends JComboBox implements TableCellEditoras a ComboBox editor for JTable
    Please Help Me.

    Hi
    I am giving u a sample code which simulate the error
    * TestJTable.java
    * Created on August 5, 2008, 11:05 AM
    package TestJTable;
    import javax.swing.DefaultCellEditor;
    import javax.swing.table.TableColumn;
    * @author  yogi
    public class TestJTable extends javax.swing.JFrame {
        /** Creates new form TestJTable */
        public TestJTable() {
            initComponents();
            DefaultCellEditor ColumnEditor = new DefaultCellEditor(jComboBox1);
            ColumnEditor.setClickCountToStart(2);
            TableColumn column = jTable1.getColumnModel().getColumn(0);
            column.setCellEditor(ColumnEditor);       
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
        // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
        private void initComponents() {
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            jComboBox1 = new javax.swing.JComboBox();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            getContentPane().setLayout(null);
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null}
                new String [] {
                    "Title 1", "Title 2", "Title 3", "Title 4"
            jScrollPane1.setViewportView(jTable1);
            getContentPane().add(jScrollPane1);
            jScrollPane1.setBounds(10, 10, 340, 180);
            jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
            getContentPane().add(jComboBox1);
            jComboBox1.setBounds(180, 220, 120, 20);
            pack();
        }// </editor-fold>//GEN-END:initComponents
         * @param args the command line arguments
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    TestJTable TJTable = new TestJTable();
                    TJTable.setExtendedState(MAXIMIZED_BOTH);               
                    TJTable.setVisible(true);
        // Variables declaration - do not modify//GEN-BEGIN:variables
        private javax.swing.JComboBox jComboBox1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable jTable1;
        // End of variables declaration//GEN-END:variables
    }Above code is generated by Netbeans IDE 6.0
    My promblem is that when you run the code the combobox JComboBox1 remains visible till i starts to edit the Table after once started editing it disappears.
    I want to avoid this
    thanks in advance

  • Help please with Jtable

    HI
    I'm having problems
    I have a frame that has a textField, button, label.
    The button is used to diplay the Jtable which has the resultSet.
    My query is:
    String query = "SELECT personID, firstName, surname FROM Person where firstName = '" + jTxtTest.getText() + "'";
    If I enter Gita in the textField and press the button it should display the personID, firstName, surname where firtsname = Gita
    in the Jtable and also display Gita in the label.
    But it only display Gita in the Label but noting in the Jtable.
    What am i doing wrong?????
    public class Frame1 extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();;
              String driver="sun.jdbc.odbc.JdbcOdbcDriver";
              String url="jdbc:odbc:myDatabase";
              String tempname = "";
              int tempcnt;
              JTabbedPane tabbedPane = new JTabbedPane();
              Object[] data = new Object[20];
              DefaultTableModel defaulttablemodel = new DefaultTableModel();
              JTable jtable = new JTable(defaulttablemodel);
    JPanel p1 = new JPanel();
    JTabbedPane jTabbedPane1 = new JTabbedPane();
    JPanel jPanel1 = new JPanel();
    JTextField jTxtTest = new JTextField();
    JButton jButton1 = new JButton();
    JLabel jLabel1 = new JLabel();
    /**Construct the frame*/
    public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
    jbInit();
    catch(Exception e) {
    e.printStackTrace();
    /**Component initialization*/
    private void jbInit() throws Exception {
    setup();
    contentPane = (JPanel) this.getContentPane();
    this.setSize(new Dimension(554, 532));
    this.setTitle("Frame Title");
    jPanel1.setLayout(null);
    jTxtTest.setBounds(new Rectangle(53, 20, 208, 33));
    jButton1.setText("jButton1");
    jButton1.setBounds(new Rectangle(314, 19, 130, 36));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(ActionEvent e) {
    jButton1_actionPerformed(e);
    jLabel1.setBounds(new Rectangle(462, 23, 82, 20));
    contentPane.add(jTabbedPane1, BorderLayout.CENTER);
    jTabbedPane1.add(jPanel1, "jPanel1");
    jPanel1.add(jTxtTest, null);
    jPanel1.add(jButton1, null);
    jPanel1.add(jLabel1, null);
    void setup()
                   setupMenuBar();
                   showpane1();
                   //contentPane.add(tabbedPane, BorderLayout.CENTER);
              //------------------------------------------------------------ End setup -----------------
              //============================================================ Start setupMenuBar ========
              void setupMenuBar()
                   MenuBar menuBar = new MenuBar();
                   Menu fileMenu = new Menu("File");
                             MenuItem fileExit = new MenuItem("Exit");
                                  fileExit.addActionListener(new MenuItemHandler());
                                  fileMenu.add(fileExit);
    MenuItem filePrev = new MenuItem("Preview");
                                  filePrev.addActionListener(new MenuItemHandler());
                                  fileMenu.add(filePrev);
                             menuBar.add(fileMenu);
                   setMenuBar(menuBar);
              //------------------------------------------------------------ End setupMenuBar-----------
              //============================================================ Start showpane1 =========
              void showpane1() // REPORTS TAB WITH JTABLE
                   p1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Student Reports 1"));
    p1.setBounds(new Rectangle(28, 70, 513, 429));
    try
                             Class.forName(driver);
                             Connection connection=DriverManager.getConnection(url);
                             Statement statement = connection.createStatement();
                             String query = "SELECT personID, firstName, surname FROM Person where firstName = '" + jTxtTest.getText() + "'";
                             ResultSet rs = statement.executeQuery(query);
    if (rs == null)
    System.out.println("cannot execute query");
                             ResultSetMetaData rmeta = rs.getMetaData();
                             int numColumns=rmeta.getColumnCount();
    for(int i=1;i<=numColumns;++i)
                                  if(i<=numColumns)
                                       defaulttablemodel.addColumn(rmeta.getColumnName(i));
                             while(rs.next())
                                  for(int i=1;i<=numColumns;++i)
                                       if(i<=numColumns)
                                            tempname = rs.getString(i);
                                            tempcnt=i-1;
                                            data[tempcnt] = tempname;
                                  defaulttablemodel.addRow(data);
                   catch(Exception ex)
         p1.add(new JScrollPane(jtable));
              //------------------------------------------------------------ End showpane1 ------------
              //=========================================================== START MenuItemHandler ======
              class MenuItemHandler implements ActionListener
                   public void actionPerformed(ActionEvent ev)
                        String s=ev.getActionCommand();
                        if(s=="Exit")
                        System.exit(0);
    else if (s=="Preview")
    /**Overridden so we can exit when window is closed*/
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    System.exit(0);
    void jButton1_actionPerformed(ActionEvent e) {
    jLabel1.setText(jTxtTest.getText());
    jPanel1.add(p1);
    contentPane.repaint();
    }

    Hi,
    Seems u r new to progrmming.Well u used Jbuilder to write.U wrote good debug statments but forgot to write deubg statment or printstacktrace in excpetions.
    ok here is answer for ur problem.
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    public class Frame1 extends JFrame {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();;
    String driver="org.gjt.mm.mysql.Driver";
    String url="jdbc:mysql://thienpo-app.thienpo.com/jps";
    String user="";
    String pass="";
    String tempname = "";
    int tempcnt;
    boolean firstTime=false;
    JTabbedPane tabbedPane = new JTabbedPane();
    Object[] data = new Object[20];
    DefaultTableModel defaulttablemodel = new DefaultTableModel();
    JTable jtable = new JTable(defaulttablemodel);
    JPanel p1 = new JPanel();
    JTabbedPane jTabbedPane1 = new JTabbedPane();
    JPanel jPanel1 = new JPanel();
    JTextField jTxtTest = new JTextField();
    JButton jButton1 = new JButton();
    JLabel jLabel1 = new JLabel();
    /**Construct the frame*/
    public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
    jbInit();
    catch(Exception e) {
    e.printStackTrace();
    /**Component initialization*/
    private void jbInit() throws Exception {
    setupMenuBar();
    contentPane = (JPanel) this.getContentPane();
    this.setSize(new Dimension(554, 532));
    this.setTitle("Frame Title");
    jPanel1.setLayout(null);
    jTxtTest.setBounds(new Rectangle(53, 20, 208, 33));
    jButton1.setText("jButton1");
    jButton1.setBounds(new Rectangle(314, 19, 130, 36));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(ActionEvent e) {
    jButton1_actionPerformed(e);
    jLabel1.setBounds(new Rectangle(462, 23, 82, 20));
    contentPane.add(jTabbedPane1, BorderLayout.CENTER);
    jTabbedPane1.add(jPanel1, "jPanel1");
    jPanel1.add(jTxtTest, null);
    jPanel1.add(jButton1, null);
    jPanel1.add(jLabel1, null);
    this.setVisible(true);
    //------------------------------------------------------------ End setup -----------------
    //============================================================ Start setupMenuBar ========
    void setupMenuBar()
    MenuBar menuBar = new MenuBar();
    Menu fileMenu = new Menu("File");
    MenuItem fileExit = new MenuItem("Exit");
    fileExit.addActionListener(new MenuItemHandler());
    fileMenu.add(fileExit);
    MenuItem filePrev = new MenuItem("Preview");
    filePrev.addActionListener(new MenuItemHandler());
    fileMenu.add(filePrev);
    menuBar.add(fileMenu);
    setMenuBar(menuBar);
    //------------------------------------------------------------ End setupMenuBar-----------
    //============================================================ Start showpane1 =========
    void showpane1() // REPORTS TAB WITH JTABLE
    p1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Student Reports 1"));
    p1.setBounds(new Rectangle(28, 70, 513, 429));
    try
    Class.forName(driver);
    Connection connection=DriverManager.getConnection(url,user,pass);
    Statement statement = connection.createStatement();
    String query = "SELECT personID, firstName, surname FROM Person where firstName = '" + jTxtTest.getText() + "'";
    System.out.println(" query"+query);
    ResultSet rs = statement.executeQuery(query);
    if (rs == null)
    System.out.println("cannot execute query");
    System.out.println(" query"+query);
    ResultSetMetaData rmeta = rs.getMetaData();
    int numColumns=rmeta.getColumnCount();
    if( !firstTime){
    for(int i=1;i<=numColumns;++i)
    if(i<=numColumns )
    defaulttablemodel.addColumn(rmeta.getColumnName(i));
    firstTime=true;
    while(rs.next())
    for(int i=1;i<=numColumns;++i)
    if(i<=numColumns)
    tempname = rs.getString(i);
    tempcnt=i-1;
    data[tempcnt] = tempname;
    defaulttablemodel.addRow(data);
    catch(Exception ex)
    System.out.println("***********************"+ex);
    p1.add(new JScrollPane(jtable));
    public static void main(String[] args){
         new Frame1();
    //------------------------------------------------------------ End showpane1 ------------
    //=========================================================== START MenuItemHandler ======
    class MenuItemHandler implements ActionListener
    public void actionPerformed(ActionEvent ev)
    String s=ev.getActionCommand();
    if(s=="Exit")
    System.exit(0);
    else if (s=="Preview")
    /**Overridden so we can exit when window is closed*/
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    System.exit(0);
    void jButton1_actionPerformed(ActionEvent e) {
    jLabel1.setText(jTxtTest.getText());
    showpane1();
    jPanel1.add(p1);
    contentPane.repaint();
    sreeni,
    [email protected]

  • Erratic Report Region Behavior with Dynamic SQL Queries

    I'm running HTMLDB v 1.5.1.00.12 and I've noticed some odd behavior with report regions using dynamic SQL queries. Every so often, our testers will run a page containing a dynamic sql report region and get the following error, (despite the fact the query was working only moments ago and no other developer has touched it):
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    or sometimes
    failed to parse SQL query:ORA-01403: no data found
    The only solution I've found so far is to:
    1) Make a copy of the failed report region.
    2) Disable or delete the original failed report region.
    The new copy of the report region runs without issue.
    My search of the forums turned up the following two threads, but neither provided me with a clear explanation of the cause, and how to avoid it:
    ORA-06502:PL/SQL: numeric or value error: character string buffer too small
    Re: Import Export Error (ORA-06502)
    The columns being returned are below the 4000 character limit, and the rows being returned are far less than 32k in size.
    Could this have anything to do with the way HTMLDB is internally storing the PL/SQL used to generate the dynamic SQL Query? Is there any known issue related to this with that version of HTMLDB?
    This problem occurs without any discernable pattern or consistency, making it hard to determine where I should focus my efforts in tracking down the cause.

    Hi all,
    My report seems to be behaving correctly once i set it to "Use Generic Column Names (parse query at runtime only)" :)
    Cheers,
    Joel

  • TS4268 I can't activate FaceTime & iMessage on my iPad ... Would this have anything to do with already having these set up on my iPhone with the same apple ID?

    I can't activate FaceTime &amp; iMessage on my iPad ... Would this have anything to do with already having these set up on my iPhone with the same apple ID?

    As long as you're logged into the same AppleID on both devices, this is not a problem.  It's only a problem if you're logged into a different AppleID and then try to associate FaceTime with an email that tied to the other AppleID.

  • Is there a way to remove many photos from the iPhone camera roll with out having to delete photos one by one?  I need space, it's so full and I've opted out of deleting them when I sync them to my computer in the past.

    Since I've transfered all my photos to my computer & added the files that I'd like on my phone in iTunes I'd like to delete the photos from my camera roll on my phone, but there are a lot and I'd like to be able to do it quickly.  Is it possible to do this with out having to put each on into the trash on my phone?

    *correction*
    Arrow in bottom left allows you to multi select. After you choose your photos, you can hit the delete button that appears in the bottom right hand corner. Or, you can hit the cancel button in the rop right and not delete them

  • Selection Problem with JTable

    Hello,
    i have a selection problem with JTable. I want to allow only single cell selection and additionally limit the selection to the first column.
    I preffered the style from MS Outlook Express where you can select the email accounts to edit.
    It is a table like this:
    Account name  |   Type  |   ...
    --------------|---------|---------------------
    Hotmail       |   POP3  |
    GMX           |   IMAP  |The selection should be only avaibable at 'Hotmail' or 'GMX' - not at 'POP3', 'IMAP' or as complete row selection.
    Please help me!
    Thanks.
    Warlock

    Maybe this will helpimport java.awt.*;
    import javax.swing.*;
    public class Test3 extends JFrame {
      public Test3() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container content = getContentPane();
        String[] head = {"One", "Two"};
        String[][] data = {{"R1-C1", "R1-C2"}, {"R2-C1", "R2-C2"}};
        JTable jt = new JTable(data, head);
        jt.getColumnModel().setSelectionModel(new MyTableSelectionModel());
        content.add(new JScrollPane(jt), BorderLayout.CENTER);
        jt.setCellSelectionEnabled(true);
        jt.setRowSelectionAllowed(false);
        jt.setColumnSelectionAllowed(false);
        setSize(300, 300);
        setVisible(true);
      public static void main(String[] arghs) { new Test3(); }
    class MyTableSelectionModel extends DefaultListSelectionModel {
      public void setSelectionInterval(int index0, int index1) {
        super.setSelectionInterval(0, 0);
    }

  • I can not transfer my photo albums from my Ipad to my computer(Microsoft windows). I have spent some time arranging these albums into some order with each having it's own name.but when i transfer it to my computer  the photo's are out of order

    We have sorted our photo's into albums with each having their own headings on our Ipad. We have now downloaded these to our computer (Microsoft).The only problem is they did not save in the album order or have any reference to the name of the album. I was wondering if there is away to download our photo's by album from the ipad to a Microsoft computer or even to an extermal hard drive.

    First of all, you should always save you photos on computer like any other digital camera.
    Backup on iCloud or iTunes only backup your Camera Roll. The other photos should be already on the computer.
    Note: Photos are not saved in iTunes, it's only a conduit between your iPhone and your photo managing software on computer.
    What computer do you have?

  • Any body please can solve my problem that iam facing with JTable

    Dear sir,
    Iam doing an educational product using Swing as front end in that
    iam using JTables. And back end iam using sqlserver. With jtable iam
    facing very serious problem the problem is actually iam entering the values
    in all the columns after that iam pressing the save button its not
    saving but if i click on any of the columns and try to save its saving.
    please anybody can solve my problem.Please if a piece of code is there ill
    be very thankful to you. my mailid is [email protected]
    regards
    surya

    The problem is, the cellEditor does not know that editing has stopped and therefore has not updated the model (where the data actually resides). When you click off the cell to another cell, the first cell knows it must be done editing because you are leaving it. If you click a button (or anything other than another cell), the cell being edited has no knowledge of this. You need to call stopCellEditing() on the cell editor and your problem will be solved. To do this, put the following method into your code and call it when you click the button to clear, save or whatever you need to do.
    public void ceaseEditing() {    int row = this.getEditingRow();
      int col = this.getEditingColumn();
      if (row != -1 && col != -1)
        this.getCellEditor(row,col).stopCellEditing(); 
      }Hope this helped...

  • How do I create an apple Id for iTunes with out having a credit card?

    ow do I create an apple Id for iTunes with out having a credit card? I have this but it says when i use it on itunes I have to show payment information i dont have a credit card and I dont have a itunes card right now.

    Click here for information.
    (80251)

Maybe you are looking for