Problems with JList & JTable in Netbeans 5.5

Hi,
Netbeans provides good GUI building provider.
But when i am adding JList inside panel
and trying to add elements its giving error.
So how to modify read only code in netBeans 5.5 generated code. ??
There is problem accessing JList variable to be modify.
HOW TO ACHIEVE THIS ????
because When you add JList in your GUI Part.
Netbeans generates code automatically.
we can't change it.
HOW TO DO it... ???

I have had similar trouble.
In NetBeans Guieditor, JList and JTable are automatically created in a JScrollPanel. This is good as it saves you lots of formatting.
PROBLEM: when you click/select the JTable or JList in the GUI Editor the Properties box (right hand side ) only shows properties for the JScrollPane.
So you will only be able to edit Init code etc for the JScrollPane
SOLUTION: The "Members View" is a list of members (Panels, Objects, etc) on the left hand side of the screen.
The JScrollPane is listed there. You simply click on this to expand and select the JTable/JList that it contains.
When you select the JTable/JList the Properites window (right side of screen) now shows the properties for the component you really want to deal with.
The code options are very powerful.

Similar Messages

  • Problems with a JTable

    Hello folks,
    i got two problems with a JTable.
    1. how do I change the size of a table header???
    2. I know that it is possible to set different column-sizes. The problem in my table is that I don't know how long some cells are. In this case, I want to to get the biggest cell of one column and set its size as the default size of that specific column.
    Is that possilbe?
    Hopefully you can help me out,
    thank you

    A JTableHeader is just another Component, so you ought to be able to set its size like you would
    any other component; however, since its function is to act as a header for a table, it might constrain
    itself to fit the table.
    In order to size the column to fit the largest cell, for each row, go through each column and get the
    renderer component for that column (which configures the component for rendering) and get the width
    of that component. If that's bigger than the column's current width, set its width and preferred width.
    You'll also want to check the renderer component width for the header to make sure the header doesn't
    get truncated if the column doesn't have a cell whose value is longer than the header.
    : jay

  • Problem with a JTable Update

    I have a JDialog with a JTable and JScrollPane.
    JTable uses TableModel.java
    Now, when I am tryint to scroll to the right, the name of the columns, that was out of window won't redraw and the text is merged. The rows are ok. Only the titles.
    How to get the column names updated?
    Here is the code:
    TableTest.java (JDialog)
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JDialog;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    public class TableTest extends JDialog {
         private JPanel jContentPane = null;
         private JScrollPane jScrollPane = null;
         private JTable jTable = null;
         private TableModel tableModel = null; 
          * This is the default constructor
         public TableTest() {
              super();
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setSize(300, 200);
              this.setContentPane(getJContentPane());
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private JPanel getJContentPane() {
              if (jContentPane == null) {
                   jContentPane = new JPanel();
                   jContentPane.setLayout(new BorderLayout());
                   jContentPane.add(getJScrollPane(), java.awt.BorderLayout.NORTH);
              return jContentPane;
          * This method initializes jScrollPane     
          * @return javax.swing.JScrollPane     
         private JScrollPane getJScrollPane() {
              if (jScrollPane == null) {
                   jScrollPane = new JScrollPane();
                   jScrollPane.setPreferredSize(new java.awt.Dimension(453,100));
                   jScrollPane.setViewportView(getJTable());
              return jScrollPane;
          * This method initializes jTable     
          * @return javax.swing.JTable     
         private JTable getJTable() {
              if (jTable == null) {
                   jTable = new JTable();
                   jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
                   jTable.setModel(getTableModel());
                   jTable.setPreferredSize(new java.awt.Dimension(500,80));
              return jTable;
          * This method initializes tableModel     
          * @return TableModel     
         private TableModel getTableModel() {
              if (tableModel == null) {
                   tableModel = new TableModel();
              return tableModel;
    TableModel.javaimport javax.swing.table.AbstractTableModel;
    public class TableModel extends AbstractTableModel {
         private String[] columnNames = {"First Name",
                   "Last Name",
                   "Sport",
                   "# of Years",
         "Vegetarian"};
         private Object[][] data = {
                   {"Mary", "Campione",
                        "Snowboarding", new Integer(5), new Boolean(false)},
                        {"Alison", "Huml",
                             "Rowing", new Integer(3), new Boolean(true)},
                             {"Kathy", "Walrath",
                                  "Knitting", new Integer(2), new Boolean(false)},
                                  {"Sharon", "Zakhour",
                                       "Speed reading", new Integer(20), new Boolean(true)},
                                       {"Philip", "Milne",
                                            "Pool", new Integer(10), new Boolean(false)}
         public final Object[] longValues = {"Sharon", "Campione",
                   "None of the above",
                   new Integer(20), Boolean.TRUE};
         public int getColumnCount() {
              return columnNames.length;
         public int getRowCount() {
              return data.length;
         public String getColumnName(int col) {
              return columnNames[col];
         public Object getValueAt(int row, int col) {
              return data[row][col];
         * JTable uses this method to determine the default renderer/
         * editor for each cell. If we didn't implement this method,
         * then the last column would contain text ("true"/"false"),
         * rather than a check box.
         public Class getColumnClass(int c) {
              return getValueAt(0, c).getClass();
         public void setValueAt(Object value, int row, int col) {
              data[row][col] = value;
              fireTableCellUpdated(row, col);

    Heres your code (reworked a little to show what i mean)
    does this solve your issue?
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JDialog;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.AbstractTableModel;
    public class TableTest extends javax.swing.JFrame {
         private JPanel jContentPane = null;
         private JScrollPane jScrollPane = null;
         private JTable jTable = null;
         private TableModel tableModel = null; 
          * This is the default constructor
         public TableTest() {
              super();
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setSize(300, 200);
              this.setContentPane(getJContentPane());
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private JPanel getJContentPane() {
              if (jContentPane == null) {
                   jContentPane = new JPanel();
                   jContentPane.setLayout(new BorderLayout());
                   jContentPane.add(getJScrollPane(), java.awt.BorderLayout.NORTH);
              return jContentPane;
          * This method initializes jScrollPane     
          * @return javax.swing.JScrollPane     
         private JScrollPane getJScrollPane() {
              if (jScrollPane == null) {
                   jScrollPane = new JScrollPane();
                   jScrollPane.setPreferredSize(new java.awt.Dimension(453,100));
                   jScrollPane.setViewportView(getJTable());
              return jScrollPane;
          * This method initializes jTable     
          * @return javax.swing.JTable     
         private JTable getJTable() {
              if (jTable == null) {
                   jTable = new JTable();
                   jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
                   jTable.setModel(getTableModel());
                   //jTable.setPreferredSize(new java.awt.Dimension(500,80)); //this line is causing your error, but i dont know why
              return jTable;
          * This method initializes tableModel     
          * @return TableModel     
         private TableModel getTableModel() {
              if (tableModel == null) {
                   tableModel = new TableModel();
              return tableModel;
            public static void main (String[] main)
                new TableTest().setVisible(true);
    class TableModel extends AbstractTableModel {
         private String[] columnNames = {"First Name",
                   "Last Name",
                   "Sport",
                   "# of Years",
         "Vegetarian"};
         private Object[][] data = {
                   {"Mary", "Campione",
                        "Snowboarding", new Integer(5), new Boolean(false)},
                        {"Alison", "Huml",
                             "Rowing", new Integer(3), new Boolean(true)},
                             {"Kathy", "Walrath",
                                  "Knitting", new Integer(2), new Boolean(false)},
                                  {"Sharon", "Zakhour",
                                       "Speed reading", new Integer(20), new Boolean(true)},
                                       {"Philip", "Milne",
                                            "Pool", new Integer(10), new Boolean(false)}
         public final Object[] longValues = {"Sharon", "Campione",
                   "None of the above",
                   new Integer(20), Boolean.TRUE};
         public int getColumnCount() {
              return columnNames.length;
         public int getRowCount() {
              return data.length;
         public String getColumnName(int col) {
              return columnNames[col];
         public Object getValueAt(int row, int col) {
              return data[row][col];
          * JTable uses this method to determine the default renderer/
          * editor for each cell.  If we didn't implement this method,
          * then the last column would contain text ("true"/"false"),
          * rather than a check box.
         public Class getColumnClass(int c) {
              return getValueAt(0, c).getClass();
         public void setValueAt(Object value, int row, int col) {
              data[row][col] = value;
              fireTableCellUpdated(row, col);
    }

  • Problem with design area in netbeans

    out of no where am starting to have this problem.....my design area in netbeans is not visible....when i create a new JFrame , the code to the basic design area is
    there, but when i switch to design view there is no design area. thus i can not drag any items there......am using netbeans 6.0.1 ...the problem occured out of no where , the ide used to work fine before....... i found the similar problem in this thread :
    [http://www.nabble.com/Pls-Help%3A-I-cannot-add-any-component-with-my-GUI-Builder-by-drag-drop-td17411692.html]
    the thread shows the similar problem as to mine, with pictures hint......but no solution .......need some help...
    regards.......

    As at the NetBeans forum.

  • Problem with opening project in NetBeans 5.0

    Hi,
    When i try to open an existing project in NetBeans 5.0 or try to add a new platform to a certain project, my computer is stack and i can't work with the NetBeans IDE ( i have to kill the process)
    How can i fix this problem?

    Hi
    Please ensure servlet can natural work.
    http://localhost:8080/one/Receive
    Please use actual path in form at best.
    /appname/uservletname
    just say:
    <form method="post" action="/one/Receive">
    Regards

  • Problem with CachedRowSetDataProvider.java from Netbeans 5.5

    Greetings jsf developers,
    I created a program to read some files and writing the data output into a file. The main purpose of this program is to generate a set of data (reading from multiple files) and saving it into a new table. When I ran the program over and over in order to generate some set of data, only the data output from the 1st-run was successfully written into the file. Below is the code snapshot to write the data output into the file:
    ....... after reading all the input data....
    if (t_salesDataProvider_gen.canAppendRow()) {
    try {
    RowKey rowKey = t_salesDataProvider_gen.appendRow();
    t_salesDataProvider_gen.setValue("cid", rowKey, cust_id);
    t_salesDataProvider_gen.setValue("ref_name", rowKey, refName);
    t_salesDataProvider_gen.setValue("sales_date", rowKey, tStamp);
    t_salesDataProvider_gen.setValue("cname", rowKey, cust_name);
    t_salesDataProvider_gen.setValue("sales_amount", rowKey, amount);
    t_salesDataProvider_gen.setValue("sales_name", rowKey, sName);
    t_salesDataProvider_gen.commitChanges();
    On the tomcat log I got the following stacktrace errors:
    java.lang.IllegalArgumentException: ref_name
    at com.sun.data.provider.impl.CachedRowSetDataProvider.getFieldKeyInternal(CachedRowSetDataProvider.java:486)
    at com.sun.data.provider.impl.CachedRowSetDataProvider.getFieldKey(CachedRowSetDataProvider.java:444)
    at com.sun.data.provider.impl.AbstractTableDataProvider.setValue(AbstractTableDataProvider.java:135)
    at salestrans.CreateSalesData.btnRun_action(CreateSalesData.java:731)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
    at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
    at javax.faces.component.UICommand.broadcast(UICommand.java:312)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:198)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    On the CachedRowSetDataProvider.java program, below is the method which threw an exception to my program:
    private FieldKey getFieldKeyInternal(String fieldId) throws DataProviderException {
    if (fieldKeysMap == null) {
    if (fieldKeys == null) {
    getFieldKeys();
    if (fieldKeys == null) {
    return null;
    fieldKeysMap = new TreeMap(String.CASE_INSENSITIVE_ORDER);
    for (int i = 0; i < fieldKeys.length; i++) {
    fieldKeysMap.put(fieldKeys.getFieldId(), fieldKeys[i]);
    FieldKey fieldKey = (FieldKey) fieldKeysMap.get(fieldId);
    if (fieldKey != null) {
    return fieldKey;
    } else {
    throw new IllegalArgumentException(fieldId); <==
    Under the "<==" sign is the exception which was falling into my program. It always complains that the fieldKey is null for the "ref_name" field, but the fact is NOT.
    If anyone could give me an advice to figure out what is going on with my code or maybe it is bug on Netbeans 5.5. Thank you for your kind attention!
    - jsfNewbie

    Greetings everyone,
    I'd like to thank you for your kind attention to share your thought to my JSF development problem. Although the problem is still a mistery for me, but I decided to move forward to an alternative in order to write a new data into a file using INSERT INTO statement instead of CachedRowSetDataProvider operation. Now everything is under control...and keep going ....
    Thanks!

  • Problem with visual jsf in NetBeans

    I am using NetBeans 6.0 and when I make a new Web application using the Visual JavaServer Faces framework the Design tab is blank and says "Loading, please wait..." but it never loads...but I can open the jsp and java tab of Page1 with no problem... when I run the project appears this message:
    HTTP Status 503 -
    type Status report
    message
    descriptionThe requested service () is not currently available.
    Sun Java System Application Server 9.1
    What seems to be the problem?I unistalled and I re-installed NetBeans and yet again the same problem occurs.Please anyone who can help because I really need to make my project.Thanks.
    Edited by: ellie80 on Dec 5, 2007 8:14 PM

    As at the NetBeans forum.

  • Problem with refreshing jtable. help please urgent.

    hi there
    i can refresh the table now, but the problem is that every time it refreshes, it adds the same data to the freshed table. i just need the table to display what was displayed few seconds ago unless there is change in the datasource. here is my code:
    public void run()
    String selectSQL = "select * from buyerordertable";
    int rowCounter = 1;
    boolean okay = true;
    ResultSet rs;
    Vector rowdata = new Vector();
    Vector columNames = new Vector();
    columNames.add("order Id");
    columNames.add("suplier name");
    columNames.add("item name");
    columNames.add("model");
    columNames.add("quantity");
    columNames.add("price");
    columNames.add("description");
    columNames.add("job Id");
    columNames.add("order confirm Id");
    while (okay)
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:wgclientdatabase", "admin", "");
    PreparedStatement ps = con.prepareStatement(selectSQL);
    rs = null;
    rs = ps.executeQuery();
    while(rs.next())
    Vector temp =new Vector();
    String orderid = rs.getString("OrderID");
    temp.add(orderid);
    String supplier =rs.getString("supplierName");
    temp.add(supplier);
    String item = rs.getString("ItemName");
    temp.add(item);
    String model = rs.getString("Model");
    temp.add(model);
    String quantity = rs.getString("Quantity");
    temp.add(quantity);
    String price = rs.getString("Price");
    temp.add(price);
    String description = rs.getString("Description");
    temp.add(description);
    String jobid = rs.getString("JobID");
    temp.add(jobid);
    String confirmid = rs.getString("OrderConfirmID");
    temp.add(confirmid);
    rowdata.add(temp);
    }catch (SQLException sqle)
    catch(ClassNotFoundException ce)
    try
    /*the table keeps adding old data to the refreshed table. i start with one row of data, after every second, a new row of same data is added to the table. i don't know why.*/
    DefaultTableModel newmodel =(DefaultTableModel)jTable.getModel();
    newmodel.setDataVector(rowdata, columNames);
    jScrollPane.repaint();
    Thread.sleep(1000);
    catch (InterruptedException e)
    okay = false;
    }

    hi there
    thank you for your reply
    doesn't the tablemodel keep one set of data? every time i refresh the table, the table model should only provide same data over and over unless it is reset again? in my program, the result seems like the table model is cumulating data every time it refreshes. and the display is growing with the same data. i already use the
    newmodel.setDataVector(rowdata, columNames);
    to reset the data. ideally the table should only display rowdata. some people say that just using table model will solve the refreshing task. i am not sure if they have my kind of problem.

  • Problems with newer version of Netbeans

    I get an error message when executing an application written using Netbeans 3.3.2 in the newer version of Netbeans. It says it can't find the servlet that is used.
    What should be changed to get it to work with the newer version of Netbeans and why does it work in an older version of Netbeans and not the new version?!!!
    The exact error message was:
    The requested resource (/servlet/controller/EndUsers/Search) is not available.
    Thanks
    Michael

    this isn't a netbeans problem...
    this rather seems to be a problem of packages that can be found or not found.
    make sure you have all the correct jars/packages mounted..
    try to recompile it first!

  • Problems with JList

    Hi all,
    I'm trying to use a JList for a program that I'm making.
    To initialize the JList, I use the following code:
    public static JList menu;
    public MadLibsManagerGui() {
    menu = new JList(MadLibsGui.getComboInfo());
    the getComboInfo() method returns an array of strings. This should work, no? But, it doesn't seem to be working! When i try printing the number of indices in the jlist, i get -1even though all of my strings (from the array) do get displayed in the JList. Any ideas? Thanks so much! any help is greatly appreciated.
    PS. Does anyone know how to close a JFrame using the push of a button?

    Even when i pass it an integer constant, i get the
    exceptionA couple of things:
    First of all, the remove(int) method defined in JList is inherited from java.awt.Container: it is used for removing a child Component with the given index from a Container. In other words, you cannot use it to remove items from the list.
    In fact, there are no methods defined in the JList API for adding or removing items once the list is created. This is because the ListModel interface that defines the data that backs the JList is immutable.
    It is still possible, of course, to add and remove items from a JList. The trick is to use a custom ListModel implementation, such as DefaultListModel, that allows such modifications. See the JList tutorial for examples of this.
    Secondly, if something is selected in the list, getSelectedIndex() will not return -1. If the JList you see on your screen has something selected, but getSelectedIndex() returns -1 when called on a JList reference in your code, then chances are good that you have two different JList objects. The JList that you add to the UI is not the same JList instance you refer to when calling getSelectedIndex().

  • Serious problems with JLists

    Could someone please look at my code and help me fix it. As you can see there are four JLists. I need to have the choice in list 1 generate the entries for list 2 and so on. I have four temporary methods to 'generateVectors' but I only want to generate the vector AFTER the previous choice has been made.
    Would appreciate any help
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.util.*;
    public class LoginApplet extends JApplet {
         private JList prods,tests,cards,users;
         private Container c;
         private JLabel prodChoice,testChoice,cardChoice,usr;
         private Vector v1,v2,v3,v4;
         private String colorNames[] =
         { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green",
         "Light Gray", "Magenta", "Orange", "Pink", "Red",
         "White", "Yellow" };
         private Color colors[] =
         { Color.black, Color.blue, Color.cyan, Color.darkGray,
         Color.gray, Color.green, Color.lightGray,
         Color.magenta, Color.orange, Color.pink, Color.red,
    Color.white, Color.yellow };
         //private Vector p,t,c,u;
         public void init() {
              c = getContentPane();
              c.setLayout( new FlowLayout() );
              prodChoice = new JLabel("Product: ");
              testChoice = new JLabel("Stage: ");
              cardChoice = new JLabel("Card: ");
              usr = new JLabel("User: ");
              prods = new JList(colorNames);
              prods.setVisibleRowCount( 5 );
              prods.setSelectionMode(
                   ListSelectionModel.SINGLE_SELECTION );
              c.add( new JScrollPane( prods ) );
              c.add(prodChoice);
              prods.addListSelectionListener(
                   new ListSelectionListener() {
                        public void valueChanged( ListSelectionEvent e )
    //this is where I want to generate the entries for the second list,
    //based on the selection in the first
              tests = new JList(getTestVector());
              tests.setVisibleRowCount( 5 );
              tests.setSelectionMode(
                   ListSelectionModel.SINGLE_SELECTION );
              c.add( new JScrollPane( tests ) );
              c.add(testChoice);
              tests.addListSelectionListener(
                   new ListSelectionListener() {
                        public void valueChanged( ListSelectionEvent e )
                             //do something
              cards = new JList(getCardVector());
              cards.setVisibleRowCount( 5 );
              cards.setSelectionMode(
                   ListSelectionModel.SINGLE_SELECTION );
              c.add( new JScrollPane( cards ) );
              c.add(cardChoice);
              cards.addListSelectionListener(
                   new ListSelectionListener() {
                        public void valueChanged( ListSelectionEvent e )
                             //do something
              users = new JList(getUserVector());
              users.setVisibleRowCount( 5 );
              users.setSelectionMode(
                   ListSelectionModel.SINGLE_SELECTION );
              c.add( new JScrollPane( users ) );
              c.add(usr);
              users.addListSelectionListener(
                   new ListSelectionListener() {
                        public void valueChanged( ListSelectionEvent e )
                             //do something
              setSize( 500 , 250 );
              setVisible( true );
         public Vector getProdVector() {
              Vector v1 = new Vector();
              v1.add("None");
              v1.add("APX");
              v1.add("Stinger");
              v1.add("TNT");
              v1.add("Max");
              return v1;
         public Vector getTestVector() {
              v2 = new Vector();
              for (int i=0;i<colorNames.length;i++){
              v2.add(colorNames);
              return v2;
         public Vector getCardVector() {
              v3 = new Vector();
              v3.add("None");
              v3.add("Card1");
              v3.add("Card2");
              v3.add("Card3");
              v3.add("Card4");
              return v3;
         public Vector getUserVector() {
              v4 = new Vector();
              v4.add("None");
              v4.add("user1");
              v4.add("user2");
              v4.add("user3");
              v4.add("user4");
              return v4;
    public static void main ( String args[] ){
    LoginApplet lApp = new LoginApplet();
    lApp.init();

    You should not call the constructor with the items for the other 3 lists if you want this lists empty initially
    users = new JList(); instead of
    users = new JList(getUserVector());
    and then call the method getUserVector() and add the items to the JList in the listener for the previous JList.

  • Problems with JList (multiple selection)

    hi!
    i have a simple question.. why does this construct not work? i recieve a Casting Exception!
    recList is a JList!
    if(source == send){
         String[] rec = (String[])recList.getSelectedValues();
         String message = messageArea.getText();
    thx,
    chris

    You can only cass an Object array to a String array if the array was created as a String array.
    Object[] o = new String[] { "string1", "string2" };
    String[] s = (String[])o; // this works fineIf it was created as an Object array, then you will get a ClassCastException:
    Object[] o = new Object[] { "string1", "string2" };
    String[] s = (String[])o; // throws ClassCastExceptionSo either you have to cast each Object element to a String, or copy all the elements to a String array like this:
    Object[] o = new Object[] { "string1", "string2" };
    String[] s = new String[o.length];
    System.arraycopy(o, 0, s, 0, o.length); // or copy them in a for-loop which may be faster for small arraysReturning you an Object array that was created as an Object array is the easiest way for the JList to return you the selected values. So that's why you can't just cast it to a String array even though YOU know they are all String objects.

  • Problem with JTable and JPanel

    Hi,
    I'm having problems with a JTable in a JPanel. The code is basicly as follows:
    public class mainFrame extends JFrame
            public mainFrame()
                    //A menu is implemeted giving rise to the following actions:
                    public void actionPerformed(ActionEvent evt)
                            String arg = evt.getActionCommand();
                            if(arg.equals("Sit1"))
                            //cells, columnNames are initiated correctly
                            JTable table = new JTable(cells,columnNames);
                            JPanel holdingPanel = new JPanel();
                            holdingPanel.setLayout( new BorderLayout() );
                            JScrollPane scrollPane = new JScrollPane(holdingPanel);
                            holdingPanel.setBackground(Color.white);
                            holdingPanel.add(table,BorderLayout.CENTER);
                            add(scrollPane, "Center");
                            if(arg.equals("Sit2"))
                                    if(scrollPane !=null)
                                            remove(scrollPane);validate();System.out.println("ScrollPane");
                                    if(holdingPanel !=null)
                                            remove(holdingPanel);
                                    if(table !=null)
                                            remove(table);table.setVisible(false);System.out.println("table");
                            //Put other things on the holdingPanel....
            private JScrollPane scrollPane;
            private JPanel holdingPanel;
            private JTable table;
    }The problem is that the table isn't removed. When you choose another situation ( say Sit2), at first the table apparently is gone, but when you press with the mouse in the area it appeared earlier, it appears again. How do I succesfully remove the table from the panel? Removing the panel doesn't seem to be enough. Help is much appreciated...
    Best regards
    Schwartz

    If you reuse the panel and scroll pane throughout the application,
    instantiate them in the constructor, not in an often-called event
    handler. In the event handler, you only do add/remove of the table
    on to the panel. You can't remove the table from the container
    which does not directly contain it.
    if (arg.equals("Sit2")){
      holdingPanel.remove(table);
      holdingPanel.revalidate();
      holdingPanel.repaint(); //sometimes necessary
    }

  • Problem printing the JTable

    Hi all,
    I have a problem with printing JTable.
    My application has a submit button,JTable and Print Button.
    As I click on the Submit button, the data is retrieved from the Database(MS Access) and displayed on the JTable.
    Now when I click on the Print button, the printer properties dialog box is displayed. But when I click on the print button in the dialog box, nothing is printed on the paper.
    I checked the printers and faxes in the control panel, It showed Java printing under the Document name and Printing under the Status. It is displayed for sometime and then disappeared after some time. But nothing is printed on the paper(not even the blank paper).
    I tried a lot but couldn't understand the problem.
    I have used the following files:
    PrintJTable.java
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.print.*;
    import java.awt.geom.*;
    import java.awt.Dimension;
    import java.applet.*;
    import java.sql.*;
    import java.util.*;
    import java.net.*;
    import java.lang.*;
    import javax.swing.table.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    class PrintJTable implements ActionListener,Printable
    Connection connect;
    ResultSet rs;
    JTable table;
    JScrollPane tableAggregate;
    DisplayTable displayTable;
    JButton print,submitButton;
    public PrintJTable()
    JFrame frame = new JFrame("Table");
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {System.exit(0);}});
    connect();
    displayTable= new DisplayTable();
    JButton submitButton= new JButton("SUBMIT");
    submitButton.addActionListener(this);
    JButton printButton= new JButton("PRINT!");
    // for faster printing turn double buffering off
    RepaintManager.currentManager( frame).setDoubleBufferingEnabled(false);
    printButton.addActionListener( new ActionListener(){
    public void actionPerformed(ActionEvent evt) {
    PrinterJob pj=PrinterJob.getPrinterJob();
    pj.setPrintable(PrintJTable.this);
    pj.printDialog();
    try{
    pj.print();
    }catch (Exception PrintException) {}
    tableAggregate = createTable();
    tableAggregate.setBorder(new BevelBorder(BevelBorder.LOWERED));
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(submitButton,BorderLayout.NORTH);
    frame.getContentPane().add(tableAggregate,BorderLayout.CENTER);
    frame.getContentPane().add(printButton,BorderLayout.SOUTH);
    frame.pack();
    frame.setVisible(true);
    } // end of constructor
    public void connect()
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.println("Opening db connection");
    connect = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=C:/db1.mdb","","");
    catch (ClassNotFoundException ex) {
    System.err.println("Cannot find the database driver classes.");
    System.err.println(ex);
    catch (SQLException ex) {
    System.err.println("Cannot connect to this database.");
    System.err.println(ex);
    public JScrollPane createTable() {
    displayTable= new DisplayTable();
    JTable table = new JTable(displayTable);
         table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
         table.getTableHeader().setReorderingAllowed(false);
    JScrollPane scrollpane = new JScrollPane(table,
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    return scrollpane;
    } // end of createTable()
    public void actionPerformed(ActionEvent ie)
    try
    Statement statement6=connect.createStatement();
    ResultSet rs6=statement6.executeQuery("select * from benf_details");
    displayTable.executeQuery(rs6);
    statement6.close();
    catch(SQLException sqle)
    JOptionPane.showMessageDialog(null,"error2"+sqle);
    }// end of actionPerformed
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
    Graphics2D g2 = (Graphics2D)g;
    g2.setColor(Color.black);
    int fontHeight=g2.getFontMetrics().getHeight();
    int fontDesent=g2.getFontMetrics().getDescent();
    double pageHeight = pageFormat.getImageableHeight()-fontHeight; //leave room for page number
    double pageWidth = pageFormat.getImageableWidth();
    System.out.println("page width = " + pageWidth );
    double tableWidth = (double) table.getColumnModel().getTotalColumnWidth();
    System.out.println("table width = " + tableWidth );
    double scale = 1;
    if (tableWidth >= pageWidth) {
    scale = pageWidth / tableWidth;
    System.out.println("scale = " + scale );
    double headerHeightOnPage = table.getTableHeader().getHeight() * scale;
    double tableWidthOnPage = tableWidth * scale;
    double oneRowHeight = (table.getRowHeight() + table.getRowMargin()) * scale;
    int numRowsOnAPage = (int)((pageHeight - headerHeightOnPage) / oneRowHeight);
    double pageHeightForTable = oneRowHeight * numRowsOnAPage;
    int totalNumPages = (int)Math.ceil(((double)table.getRowCount())/numRowsOnAPage);
    if(pageIndex >= totalNumPages) {
    return NO_SUCH_PAGE;
    g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    g2.drawString("Page: "+ (pageIndex + 1),(int)pageWidth / 2 - 35,
    (int)( pageHeight + fontHeight - fontDesent ));//bottom center
    g2.translate( 0f, headerHeightOnPage );
    g2.translate( 0f, -pageIndex * pageHeightForTable );
    //If this piece of the table is smaller than the size available,
    //clip to the appropriate bounds.
    if (pageIndex + 1 == totalNumPages) {
    int lastRowPrinted = numRowsOnAPage * pageIndex;
    int numRowsLeft = table.getRowCount() - lastRowPrinted;
    g2.setClip(0, (int)(pageHeightForTable * pageIndex),
    (int) Math.ceil(tableWidthOnPage),
    (int) Math.ceil(oneRowHeight * numRowsLeft));
    //else clip to the entire area available.
    else{
    g2.setClip(0, (int)(pageHeightForTable * pageIndex),
    (int) Math.ceil(tableWidthOnPage),
    (int) Math.ceil(pageHeightForTable));
    g2.scale(scale,scale);
    table.paint(g2);
    g2.scale(1/scale,1/scale);
    g2.translate( 0f, pageIndex * pageHeightForTable);
    g2.translate( 0f, -headerHeightOnPage);
    g2.setClip(0, 0,(int) Math.ceil(tableWidthOnPage), (int)Math.ceil(headerHeightOnPage));
    g2.scale(scale,scale);
    table.getTableHeader().paint(g2);//paint header at top
    return Printable.PAGE_EXISTS;
    } // end of print()
    public static void main(String[] args) {
    new PrintJTable();
    }// end of PrintJTable
    DisplayTable.java
    import java.util.Vector;
    import java.sql.*;
    import javax.swing.*;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.event.TableModelEvent;
    public class DisplayTable extends AbstractTableModel {
    Connection connection;
    Statement statement;
    ResultSet resultSet;
    String[] columnNames = {};
    Vector          rows = new Vector();
    ResultSetMetaData metaData;
    String db_uname,db_passwd;
    public DisplayTable() {
    public void executeQuery(ResultSet resultSet) {
    try {
    metaData = resultSet.getMetaData();
    int numberOfColumns = metaData.getColumnCount();
    columnNames = new String[numberOfColumns];
    // Get the column names and cache them.
    // Then we can close the connection.
    for(int column = 0; column < numberOfColumns; column++) {
    columnNames[column] = metaData.getColumnLabel(column+1);
    // Get all rows.
    rows = new Vector();
    while (resultSet.next()) {
    Vector newRow = new Vector();
    for (int i = 1; i <= getColumnCount(); i++) {
         newRow.addElement(resultSet.getObject(i));
    rows.addElement(newRow);
    // close(); Need to copy the metaData, bug in jdbc:odbc driver.
    fireTableChanged(null); // Tell the listeners a new table has arrived.
    catch (SQLException ex) {
    System.err.println(ex);
    public void close() throws SQLException {
    System.out.println("Closing db connection");
    resultSet.close();
    statement.close();
    connection.close();
    protected void finalize() throws Throwable {
    close();
    super.finalize();
    // Implementation of the TableModel Interface
    // MetaData
    public String getColumnName(int column) {
    if (columnNames[column] != null) {
    return columnNames[column];
    } else {
    return "";
    public Class getColumnClass(int column) {
    int type;
    try {
    type = metaData.getColumnType(column+1);
    catch (SQLException e) {
    return super.getColumnClass(column);
    switch(type) {
    case Types.CHAR:
    case Types.VARCHAR:
    case Types.LONGVARCHAR:
    return String.class;
    case Types.BIT:
    return Boolean.class;
    case Types.TINYINT:
    case Types.SMALLINT:
    case Types.INTEGER:
    return Integer.class;
    case Types.BIGINT:
    return Long.class;
    case Types.FLOAT:
    case Types.DOUBLE:
    return Double.class;
    case Types.DATE:
    return java.sql.Date.class;
    default:
    return Object.class;
    // to make the cells editable
    public boolean isCellEditable(int row, int column) {
    try {
    return metaData.isWritable(column+1);
    catch (SQLException e) {
    return false;
    public int getColumnCount() {
    return columnNames.length;
    // Data methods
    public int getRowCount() {
    return rows.size();
    public Object getValueAt(int aRow, int aColumn) {
    Vector row = (Vector)rows.elementAt(aRow);
    return row.elementAt(aColumn);
    public String dbRepresentation(int column, Object value) {
    int type;
    if (value == null) {
    return "null";
    try {
    type = metaData.getColumnType(column+1);
    catch (SQLException e) {
    return value.toString();
    switch(type) {
    case Types.INTEGER:
    case Types.DOUBLE:
    case Types.FLOAT:
    return value.toString();
    case Types.BIT:
    return ((Boolean)value).booleanValue() ? "1" : "0";
    case Types.DATE:
    return value.toString(); // This will need some conversion.
    default:
    return "\""+value.toString()+"\"";
    public void setValueAt(Object value, int row, int column) {
    try {
    String tableName = metaData.getTableName(column+1);
    // Some of the drivers seem buggy, tableName should not be null.
    if (tableName == null) {
    System.out.println("Table name returned null.");
    String columnName = getColumnName(column);
    String query =
    "update "+tableName+
    " set "+columnName+" = "+dbRepresentation(column, value)+
    " where ";
    // We don't have a model of the schema so we don't know the
    // primary keys or which columns to lock on. To demonstrate
    // that editing is possible, we'll just lock on everything.
    for(int col = 0; col<getColumnCount(); col++) {
    String colName = getColumnName(col);
    if (colName.equals("")) {
    continue;
    if (col != 0) {
    query = query + " and ";
    query = query + colName +" = "+
    dbRepresentation(col, getValueAt(row, col));
    System.out.println(query);
    System.out.println("Not sending update to database");
    // statement.executeQuery(query);
    catch (SQLException e) {
    // e.printStackTrace();
    System.err.println("Update failed");
    Vector dataRow = (Vector)rows.elementAt(row);
    dataRow.setElementAt(value, column);
    }

    Java 1.5 incorporates a very simple way to print from a JTable. I am using a mysql DB but it is the same concept. Review my code and let me know if you have any questions.
    package emsmain;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    import java.sql.*;
    import java.text.MessageFormat;
    import java.util.*;
    import javax.print.*;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
    import javax.swing.*;
    import javax.swing.JTable;
    import javax.swing.table.*;
    import java.awt.print.*;
    public class TableFromDatabase extends JFrame implements ActionListener{
        JButton jbtprint = new JButton("Print Report");
        JTable Reporttable;
        Connection conn = Connect_Database.getConnection();
         public TableFromDatabase()
    Vector columnNames = new Vector();
    Vector data = new Vector();     
              try{  
                String query = null;
                Statement ps = null;
                ResultSet rs = null;
                  //Class Master List
                  if (Report_Menu.jrbMaster_list.isSelected()){
                      query =("Select * from students") ;
                  //Classes taken by student
                  if (Report_Menu.jrbClass_taken.isSelected()){
                      String taken = Report_Menu.jtfStudent.getText();
                      query = ("select program.course_num, course_name, course_start_date, course_stat_desc from registration, program where student_id = '"+taken+"' and program.course_num = registration.course_num");
                  //Birthday report
                  if (Report_Menu.jrbBirthday.isSelected()){
                      String birthday = (String) Report_Menu.jcb_birthday.getSelectedItem();
                      query = ("SELECT student_id, fname, lname, address, city, state_name, zipcode, dob FROM students where substring(dob, 6,2) = '"+birthday+"'"); 
                  //Course Catologue
                  if (Report_Menu.jrbCourseCatologue.isSelected()){
                      String course = (String) Report_Menu.jcbChooseCourse.getSelectedItem();
                      query = ("select  course_name, course_length, course_cost, course_credits from course where course_name = '"+course+"'");
                  //Certification expiration report
                  if (Report_Menu.jrbExpiration.isSelected()){
                      String month = (String) Report_Menu.jcbMonth.getSelectedItem();
                      String year = (String) Report_Menu.jcbYear.getSelectedItem();
                      query = ("SELECT FNAME, LNAME FROM STUDENTS, REGISTRATION WHERE substring(expiration_date, 6,2) = '"+month+"' and substring(expiration_date, 1,4) = '"+year+"' and registration.student_id = students.student_id") ;
                  //Class Roster
                  if (Report_Menu.jrbRoster.isSelected()){
                      String c_number = Report_Menu.jtfClassNumber.getText();
                      query = ("Select course_name, course_start_date, fname, lname from program, registration, students where program.course_num = '"+c_number+"' and registration.student_id = students.student_id;");
                  //Squad list and counts
                  if (Report_Menu.jrbSquadCount.isSelected()){
                      query = ("SELECT Squad_Name, count(student_id) from students group by Squad_Name");
                  //Student List
                  if (Report_Menu.jrbStudent_list.isSelected()){
                      String Choose_month = (String) Report_Menu.jcbcourse_month.getSelectedItem();
                      String Choose_Course = (String) Report_Menu.jcbcourse_name.getSelectedItem();
                      query = ("select count(student_id) from (registration, program) where program .course_name = '"+Choose_Course+"' and substring(course_start_date, 6,2) = '"+Choose_month+"'and registration.course_num = program.course_num;");
                ps = conn.createStatement();
                //Run Selected Report
                ps.execute(query);
                rs = ps.executeQuery(query);
                ResultSetMetaData md = rs.getMetaData();
                int columns = md.getColumnCount();
                //  Get column names
                for (int i = 1; i <= columns; i++)
                    columnNames.addElement( md.getColumnName(i) );
                //  Get row data
                while (rs.next())
                    Vector row = new Vector(columns);
                    for (int i = 1; i <= columns; i++)
                        row.addElement( rs.getObject(i) );
                    //add row data to JTable
                    data.addElement( row );
                rs.close();
                ps.close();
            catch(Exception e)
                JOptionPane.showMessageDialog(null,e.getMessage());
            //  Create Jtable with database data 
            Container c = getContentPane();
            c.setLayout(new BorderLayout());
            Reporttable = new JTable(data, columnNames);
            JScrollPane scrollPane = new JScrollPane( Reporttable );
            c.add( scrollPane );
            JPanel buttonPanel = new JPanel();
            buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
            buttonPanel.add(jbtprint);
            c.add(buttonPanel,BorderLayout.SOUTH);
            jbtprint.addActionListener(this);
        public void actionPerformed(ActionEvent e){
             if(e.getActionCommand().equals("Print Report")){
               PrintForm();
    public void PrintForm(){ 
         try {
             String name = null;
             // Will display correct heading for print job
             if (Report_Menu.jrbMaster_list.isSelected()){
             name = "Master List";
             if (Report_Menu.jrbBirthday.isSelected()){
             name = "Birthday List";
             if (Report_Menu.jrbClass_taken.isSelected()){
             name = "Classes taken by Student";
             if (Report_Menu.jrbCourseCatologue.isSelected()){
             name = "Course Catalogue";
             if (Report_Menu.jrbExpiration.isSelected()){
             name = "Certification Expiration Report";
             if (Report_Menu.jrbRoster.isSelected()){
             name = "Class Roster";
             if (Report_Menu.jrbSquadCount.isSelected()){
             name = "Squad list with Student Counts";
             if (Report_Menu.jrbStudent_list.isSelected()){
             name = "Student count by Course";
             // fetch the printable
             Printable printable = Reporttable.getPrintable(JTable.PrintMode.FIT_WIDTH,
                                                      new MessageFormat(name),
                                                      new MessageFormat("Page - {0}"));
             // fetch a PrinterJob
             PrinterJob job = PrinterJob.getPrinterJob();
             // set the Printable on the PrinterJob
             job.setPrintable(printable);
             // create an attribute set to store attributes from the print dialog
             PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
             // display a print dialog and record whether or not the user cancels it
             boolean printAccepted = job.printDialog(attr);
             // if the user didn't cancel the dialog
             if (printAccepted) {
                    try {
                          // do the printing (may need to handle PrinterException)
                        job.print(attr);
                    } catch (PrinterException ex) {
                        ex.printStackTrace();
         } finally {
             // restore the original table state here (for example, restore selection)
    }

  • CND problem with code-completion

    Hi,
    First of all I don't really know where to put this post about C++ Pack in NetBeans. I've read one post in which someone suggests that this section will be pretty close...
    Maybe someone here would be so kind and try to help me...
    I'm using Ubuntu 7.04 and I have a problem with code completion in NetBeans 5.5.1 CND and I'm a little bit frustrated right now....
    I installed Netbeans, then CND, Created new C++ Project. Added new source file, with #include <GL/glut.h> directive.
    Whole code was compiled without errors, and that's fine.
    There were some problems with linking but I've added "glut", "GL", "GLU" string to linker parameters in Project Properties.
    The main problem is the code assistant. When I'm hitting "glut" and press ctrl+space it shows functions from glut library but when I type "gl" (to type "glColor3ub...") and try to show the code completion pop-up it shows "No suggestions". The same thing is with GLU library.
    I've installed GL, GLU, glut libraries (they all sit calmly in /usr/include/GL).
    I've added the /usr/include and /usr/include/GL to C++ section.
    I think that the Netbeans is able to find those *.h files because, as I said before, the glut (and the glX) functions are shown properly but there is no sign of "gl" and "glu" FUNCTIONS in code completion (the #define values specified in gl.h and glu.h are on the list, but the functions aren't)...
    I don't have idea why glut and glX are working fine, and gl and glu aren't... If anyone have similar problem, know where to look for an answer or have some suggestions I would be much obliged...
    I've seen Eclipse CDT, Anjuta, kDevelop, Code::Blocks, VIM + icomplete... after checking them all there is only one decision - I want to use NetBeans CND. It's user-friendly, fast and I just like it. That's why I would really like to know why the code-completion isn't working in 100%...

    Vladimir,
    The glColor3ub function declaration is in gl.h file (which along with glu.h is included in glut.h).
    Thanks Maxim,
    In the matter of fact since yesterday I've been looking for the reason why the GL and GLU aren't indexed properly by the Netbeans CC and I've found something.
    The GLU library was indexed after deleting
    #include <GL/gl.h>directive. So it means that the gl.h library is messing up.
    I've checked whole file (gl.h) and noticed that the only part which is in conflict with NetBeans is this one:
    #elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
    #  define GLAPI __attribute__((visibility("default")))
    #  define GLAPIENTRYI'm using GCC 4.1 so the expression value is 401, so the GLAPI define looks like the line above.
    gl.h is indexed properly by NetBeans when it is representing "extern", so it should look like
    #  define GLAPI externIt is working fine if you delete this part of gl.h or for example (which I've done) add predefined macro (or change the existing one)
    __GNUC_MINOR__=-200I know that it isn't very clean solution... I'm not happy with cheating NetBeans about the version of installed GCC but unfortunately I am not a specialist in GNU C so maybe someone would find more elegant solution.
    As far as I know the __attribute__ feature makes the GCC more verbose (warnings, errors) but I don't know how much functionality am I loosing in fact...
    Edit: Why the code tags aren't working? :/
    Message was edited by:
    Makula

Maybe you are looking for

  • Pricing determination of MIGO (goods receipt)

    How is 'Amount in LC' field in the tab 'Quantity' of MIGO (goods receipt) determined by SAP? To my understanding,  'Amount in LC' is determined by the conditions, but I don't have a clear understanding on this process. Appreciate if anyone can shrow

  • Where's the sendmail documentation?

    We are trying to implement iFS, however the documentation regarding sendmail leaves a lot to be desired. Kind of like making a cake with half a recipe. So, where is the real documentation kept?

  • How to cancel my membership of adobe photoshop program?

    please let me know as soon as possible

  • Send form as PDF after completion

    Is there a way to have a completed form emailed to the participant as a full pdf? From what I've found online and in the forums it appears that only answers can be emailed to participants and not a fully copy of the form filled out.

  • InDesign CS4  Varying page sizes one spread

    Is there a way to create a spread using two different page widths in inDesign CS4? Looking to make a doc for a gatefold where one panel (page) width would be a 1/4" shorter.  Is this possible to do in one document so I can print as spread and it will