Labelling in plsql

Hi i am new to plsql
i am trying to execute a simple program using labels,but its throwing error
program :
<<label1>>
declare
x varchar2(10) := 'hello';
begin
declare
x varchar2(10) := 'there';
begin
dbms_output.put_line(label1.x || x);
end;
end label1;
Error:
<<label1>>
declare
x varchar2(10) := 'hello'
ORA-06550: line 5, column 0:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
* & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
8 /
begin
declare
x varchar2(10) := 'there';
begin
dbms_output.put_line(label1.x || x);
end;
end label1;
ORA-06550: line 5, column 33:
PLS-00201: identifier 'LABEL1.X' must be declared
ORA-06550: line 5, column 12:
PL/SQL: Statement ignored
it is working fine.if i wont use label in this program.
someone please help me out to resolve this problem..

986127 wrote:
jus wanna know labelling concepts, so tried with basic exampleI've never used it in many years of PL/SQL programming.
Labelling, I think, comes from writing spaghetti code - nested blocks, using goto statements, etc.
What labelling does show though, is the importance of explicit scope. When you have object name collisions (same name used by different code blocks/objects), you need to rather explicitly specify the scope, than leave it for the compiler to figure it out (and potentially incorrectly).
However, actual labels are not needed. Simplistic example. Table object uses empno as column name and stored proc uses empno as variable name:
SQL> create or replace procedure GetEmployee( c out sys_refcursor, empno emp.empno%Type ) is
  2  begin
  3          --// uses explicit scope to distinguish between empno as column and
  4          --// empno as parameter
  5          open c for
  6          select
  7                  e.*
  8          from    emp e
  9          where   e.empno = GetEmployee.empno;
10  end;
11  /
Procedure created.
SQL>
SQL> var c refcursor
SQL> exec GetEmployee( :c, 7902 );
PL/SQL procedure successfully completed.
SQL> print c
     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
      7902 FORD       ANALYST         7566 1981/12/03 00:00:00       3000                    20
SQL> There is a somewhat misguided standard used in PL/SQL, based on (outdated and flawed) Hungarian notation, that states that parameters need to be prefixed using "+p_+" and variables using "+v_+".
But is a superfluous standard. The PL/SQL language supports explicit scope resolution. There's no reason to reinvent that, and reinvent it poorly and inconsistently, using a Hungarian notation style standard.

Similar Messages

  • Shipping Content Label/Rule Creation using PLSQL

    Hi All,
    I would like to know if there is any API / Open interface through which we can create new shipping labels and rules using PLSQL.
    I have analysed the forms "WMSLABEL.fmb" (Label creation form) and found the are doing direct insertion into the std tables "wms_label_formats" and "wms_label_field_variables". Same is the case for "WMSRULEF.fmb" (Rule Creaton) form.
    Please help.
    Thanks
    Abhirup Banerjee

    To answer your first question, the  scrollRect property "masks" the display object.  This property is assigned in the scrollChildren() of the Container class.
    //mx.core.Container.as  
         *  Positions the container's content area relative to the viewable area
         *  based on the horizontalScrollPosition and verticalScrollPosition properties.
         *  Content that doesn't appear in the viewable area gets clipped.
         *  This method should be overridden by subclasses that have scrollable
         *  chrome in the content area.
    protected function scrollChildren():void
    contentPane.scrollRect = new Rectangle(x, y, w, h);
    I believe the answer to your second question would be that, Container.validateDisplayList() calls createContentPaneAndScrollbarsIfNeeded() in a conditional and if that returns true, then it will call super.validateDisplayList().  So the contentPane seems to be created *during* validateDisplayList(), if its needed.
    override public function validateDisplayList():void
          // Based on the positions of the children, determine
          // whether a clip mask and scrollbars are needed.
          if (createContentPaneAndScrollbarsIfNeeded())
               // Redo layout if scrollbars just got created or destroyed (because
               // now we may have more or less space).
               if (_autoLayout || forceLayout)
                    doingLayout = true;
                   super.validateDisplayList();
                    doingLayout = false;
               // If a scrollbar was created, that may precipitate the need
               // for a second scrollbar, so run it a second time.
                createContentPaneAndScrollbarsIfNeeded();
          if (contentPane)

  • How to create label & text items in a page dynamicly(TOP URGENT)

    Dear all;
    did any1 tried before to create a PLSQL which can create labels or text items?!! i have a page which i want to create labels according to the count of rows in the Database table?
    Regards;

    I would first try creating an 'On Load - Before Header' PL/SQL Computation to count the rows, and store the result in a hidden page/application item, e.g. P120_ROW_COUNT.
    Then in the label of the item, put &P120_ROW_COUNT. as the Label Text.
    I haven't tested it - but it should work.

  • PLSQL Insert and Special Circumstance

    I am using APEX 4.0.
    This one is strange. I have a system used to renew UCC filings, which must be renewed within six months of their expiration. I have a report (UCC Tracker Report) which lists all records falling within this date range. I click a sequence number (column link) for a record and go to a form detail page (UCC Detail) for the record identified by the sequence number. There are a number of data items on this page which will not change with the filing renewal; so I want to carry these data items into the new record. I do this with a button labeled "Renew UCC." It executes a PLSQL process which does two things: (1) it inserts a new record with the data preserved from the old record, and (2) updates the old record with an "H" in the "histrec" column (which makes this record history).
    Now, the second part works; the old record is always updated. The first part (the insert) does not work, except under a special circumstance. Back on the UCC Tracker Report page there is a button labeled "Enter New UCC Record." This button calls the same page (UCC Detail) that is called for the renewal, but, of course, since it is for new record, it will have null items. There is a button on it (Return to UCC Tracker Report) which will simply allow the user to return to the report page. If the user goes to this UCC Detail page, then returns to the UCC Tracker Report page, and then clicks a sequence number (column link) to bring up the record for renewal, clicking the Renew UCC button causes the PLSQL to insert the new record. Otherwise, it will not insert.
    Somewhere there must be a setting that needs to be changed for this form to operate as intended. Please help.
    **********************************Additional Wrinkle***************************
    After posting this question, I tried one more thing. I clicked the "Enter New UCC Record" button to go to the UCC Detail page and then edited the Action on the "Return to UCC Tracker Report" button to clear the cache on this page. After that the PLSQL insert would not work.
    Edited by: Doug on Apr 27, 2012 3:45 PM

    Hi,
    The Form page where you Create/Edit does not really come into play in the duplication of record process , unless you are trying to insert a row on that page (which would be bad idea) in the Page rendering side. Analyzing the UCC Detail page may offer clues, but it can also confuse.
    Chances are you are inserting a new record while navigating out of the UCC Tracker Report page in a OnSubmit process. And that would be the right thing to do.
    You also need to make a distinction between "Row not getting inserted in the table" and "Row not showing in the Edit (UCC Detai)". If the parameter passing from UCC Tracker Report to UCC Detail page is not correct you will not see the newly created row even though it is present in the table.
    The scenario you are describing is a routine one.
    If you put up this scenario on apex.oracle.com it will be possible to help fix it. Otherwise one can only guess !
    Regards,

  • Auditing on PLSQL Objects

    This is on 10g R2.
    How can I derive auditing information from sys.aud$ specifically for PLSQL objects (function, stored procs, packages)
    In other words, what are columns or values in rows in sys.aud$ table, that gives this information.
    Thanks
    R

    SQL> desc aud$
    Name                            Null?    Type
    SESSIONID                       NOT NULL NUMBER
    ENTRYID                       NOT NULL NUMBER
    STATEMENT                       NOT NULL NUMBER
    TIMESTAMP#                             DATE
    USERID                              VARCHAR2(30)
    USERHOST                             VARCHAR2(128)
    TERMINAL                             VARCHAR2(255)
    ACTION#                       NOT NULL NUMBER
    RETURNCODE                       NOT NULL NUMBER
    OBJ$CREATOR                             VARCHAR2(30)
    OBJ$NAME                             VARCHAR2(128)
    AUTH$PRIVILEGES                        VARCHAR2(16)
    AUTH$GRANTEE                             VARCHAR2(30)
    NEW$OWNER                             VARCHAR2(30)
    NEW$NAME                             VARCHAR2(128)
    SES$ACTIONS                             VARCHAR2(19)
    SES$TID                             NUMBER
    LOGOFF$LREAD                             NUMBER
    LOGOFF$PREAD                             NUMBER
    LOGOFF$LWRITE                             NUMBER
    LOGOFF$DEAD                             NUMBER
    LOGOFF$TIME                             DATE
    COMMENT$TEXT                             VARCHAR2(4000)
    CLIENTID                             VARCHAR2(64)
    SPARE1                              VARCHAR2(255)
    SPARE2                              NUMBER
    OBJ$LABEL                             RAW(255)
    SES$LABEL                             RAW(255)
    PRIV$USED                             NUMBER
    SESSIONCPU                             NUMBER
    NTIMESTAMP#                             TIMESTAMP(6)
    PROXY$SID                             NUMBER
    USER$GUID                             VARCHAR2(32)
    INSTANCE#                             NUMBER
    PROCESS#                             VARCHAR2(16)
    XID                                  RAW(8)
    AUDITID                             VARCHAR2(64)
    SCN                                  NUMBER
    DBID                                  NUMBER
    SQLBIND                             CLOB
    SQLTEXT                             CLOB
    OBJ$EDITION                             VARCHAR2(30)

  • PLSQL and Create Table

    Hi
    I was wondering whether someone would help me with my first ever piece of PLSQL. I am trying to embed a create table as select statement into a PLSQL loop so that I can create a number of tables automatically. I am unclear as to whether this is possible or not, but my attempts so far has been unsucessful. My code so far is as follows:
    declare
    l_loops number :=1;
    begin
    loop
    if l_loops > 4 then
    exit;
    end if;
    create table l_loops as select year, month from caadatanum
    where month = l_loops;
    l_loops := l_loops +1;
    end loop;
    end;
    I am trying to use the loop to change the where condition
    as it loops through. The error message I get tells me
    that it doesn't expect the create statement so I am quite confused. Any help anyone could give me would be greatly appreciated.
    Thanks
    John

    Hi
    Firstly can I thanks you all for your help. The code no runs ok apart from one thing. It concerns the labelling of the table itself
    so 'create table '||l_loops||' as select ...
    errors with invalid table name presumably because it doesn't like giving tables numbers as names. I have tried
    'create table '||to_char(l_loops)||' as select .. but to no avail
    Is it possible to concatenate the l_loops number with a string somehow to get the statement to work ?
    create table mytable||'||l_loops||' doesn't work so I am not really sure what to do.
    Once again thanks
    John

  • Dynamic labelling the buttons

    Hi,
    I have 10 departments and every department has different number of sub-departments.
    Users will select a particular department to run a report showing summary of the department
    and tabs or buttons for all the subdepartments available under that department.
    By clicking the button or tab for a subdepartment, the user would see updatable tabular
    form for that subdepartment.
    One solution is to create pre-labelled buttons for all sub-departments on the summary report and hide/show
    them basing on the department selection. Means, if the user selects department 1 it shows button 1 to 5 and if selects department 2 then button 6 to 12 etc.
    Can anybody suggest a better solution for this?
    Thanks,
    Zahid

    report showing summary of the department and tabs or buttons for all the subdepartments available under that departmentAre these buttons shown within the report's colums ? In this case it should be quite simple since you can use the column link feature and choose the link txt as some data column and style the button using some class definition(so that it look like a button, for example apex's link button template classes).
    If you are using tabs, how are you generating them - PLSQL Dynamic region ?
    If so , submit the page and get the PLSQL region's source to generate the content.
    By clicking the button or tab for a subdepartment, the user would see updatable tabular form for that subdepartment.From this I guess a submit would b simpler coz you need to reload this Tabulat form too
    <li>Another option would be to use Dynamic action to upon report refresh that
    1. fetches the button or tab label sing an Ajax callback function and assign the label appropriately
    2. Refreshes the Tabular form for the department

  • XML Publisher for Barcode Labels?

    Is anyone using XML Publisher to print barcode labels (not barcodes on letter or A4-sized report pages)?
    If YES, do you have any tips or a brief description of how you did this?

    Hi Eric
    WE have a customer working toward going live ... Im trying to get some details down about how they did it for a blog article. Until then basically:
    1. Create a label template in MSWord, create customer page size to match your barcode lable paper. Use the barcode font in the template.
    2. Get your data source, if you use WMS then they already pump XML out for labels. Otherwise you'll have to use another method to get the data ... as its a small amount plsql would suffice
    3. Deploy template and barcode font to mid tier
    4. At runtime XMLP will generate PDF ... and heres where (for now) you have to jump through some hoops. The customer we are working with uses label printers from Zebra ... they do not have the XML enabled printers so we need to get the output into ZPL for the printer. So heres the hoops, using the PASTA print driver in Apps or the XMMLP del manager outside you can call something like GScript to convert from PDF to PS, then Zebra have and open source driver to go from PS to ZPL. Its not actually ZPL but their image format, I forget the name. This is then pumped to the printer ... not the best solution but its good enough for the customers requirments for now.
    I'll try and put some meat on this soon.
    Tim

  • NEED HELP IN LABELLING A TRIANGLE _ VERTICES

    PLEASE HELP ______
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    import java.lang.*;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import java.awt.FileDialog;
    import java.io.*;
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import javax.swing.JFrame;
    public class Geometry {
        CardLayout cards;
        JPanel panel;
        public Geometry() {
            cards = new CardLayout();
            panel = new JPanel(cards);
            addCards();
            JFrame f = new JFrame("Geometry");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setJMenuBar(getMenuBar());
            f.getContentPane().add(panel);
            f.setSize(500,500);
            f.setLocation(0,0);
            f.setVisible(true);
            f.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                public void mouseMoved(MouseEvent e) {
                   System.out.println("Mouse  " + e.getX() +","  + e.getY());
                public void mouseDragged(MouseEvent e) {
                    System.out.println("Draggg: x=" + e.getX() + "; y=" + e.getY());
            //            public void mouseMoved(MouseEvent me) {
            //                System.out.println("Moving: x=" + me.getX() + "; y=" + me.getY());
            //        panel.addMouseMotionListener(
            //        new MouseMotionListener() { //anonymous inner class
            //            //handle mouse drag event
            //           public void mouseDragged(MouseEvent me) {
            //               setTitle("Dragging: x=" + me.getX() + "; y=" + me.getY());
            //            public void mouseMoved(MouseEvent me) {
            //                setTitle("Moving: x=" + me.getX() + "; y=" + me.getY());
        private void addCards() {
            // card one
            TriangleModel tri = new TriangleModel(175,100,175,250,325,250);
            TriangleView view  = new TriangleView(tri);
            JPanel panelOne = new JPanel(new BorderLayout());
            panelOne.add(view.getUIPanel(), "North");
            panelOne.add(view);
            panelOne.add(view.getTablePanel(), "South");
            panelOne.setName("Pythagoras's Theorem");
            panel.add("Pythagoras's Theorem", panelOne);
                  view.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                 public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse at " + e.getX() +","  + e.getY());
               public void mouseDragged(MouseEvent e) {
                   System.out.println("Dragging: x=" + e.getX() + "; y=" + e.getY());
            // card two
            TestModel trin = new TestModel(175,100,175,250,325,250);
            TestView viewn  = new TestView(trin);
            JPanel panelTwo = new JPanel(new BorderLayout());
            panelTwo.add(viewn.getUIPanel(), "North");
          // panelTwo.setBackground(Color.blue);
            panelTwo.setName("Similar Triangles");
            panelTwo.add(viewn);
            panelTwo.add(viewn.getTablePanel(), "South");
                  viewn.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                 public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse at " + e.getX() +","  + e.getY());
               public void mouseDragged(MouseEvent e) {
                   System.out.println("Dragging: x=" + e.getX() + "; y=" + e.getY());
            panel.add("Similar Triangles", panelTwo);
            JPanel panelThree = new JPanel();
            panelThree.setBackground(Color.white);
            panelThree.setName("Circle Theorem1");
            panel.add("Circle Theorem1", panelThree);
        private JMenuBar getMenuBar() {
            JMenu File = new JMenu("File");
            JSeparator separator1 = new JSeparator();
            JMenuItem Open = new JMenuItem("Open");
    //         Open.addActionListener(new java.awt.event.ActionListener() {
    //            public void actionPerformed(java.awt.event.ActionEvent evt) {
    //                openActionPerformed(evt);
            JMenuItem Save = new JMenuItem("Save");
            JMenuItem Print = new JMenuItem("Print");
            JMenuItem Exit = new JMenuItem("Exit");
            Exit.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ExitActionPerformed(evt);
            JMenu theorem = new JMenu("Theorem");
            ActionListener l = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JMenuItem item = (JMenuItem)e.getSource();
                    String name = item.getActionCommand();
                    cards.show(panel, name);
            Component[] c = panel.getComponents();
            for(int j = 0; j < panel.getComponentCount(); j++) {
                String name = c[j].getName();
                JMenuItem item = new JMenuItem(name);
                item.setActionCommand(name);
                item.addActionListener(l);
                theorem.add(item);
            JMenuBar menuBar = new JMenuBar();
            JMenuBar menuBar1 = new JMenuBar();
            menuBar.add(File);
            File.add(Open);
            File.add(separator1);
            File.add(Save);
            File.add(Print);       
            File.add(Exit);
            menuBar.add(theorem);
            return menuBar;
    //    private void openActionPerformed(java.awt.event.ActionEvent evt) {
    //        FileDialog fileDialog = new FileDialog(this, "Open...", FileDialog.LOAD);
    //        fileDialog.show();
    //        if (fileDialog.getFile() == null)
    //            return;
    //        fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile();
    //        FileInputStream fis = null;
    //        String str = null;
    //        try {
    //            fis = new FileInputStream(fileName);
    //            int size = fis.available();
    //            byte[] bytes = new byte [size];
    //            fis.read(bytes);
    //            str = new String(bytes);
    //        } catch (IOException e) {
    //        } finally {
    //            try {
    //                fis.close();
    //            } catch (IOException e2) {
    //        if (str != null)
    //            textBox.setText(str);
        private void ExitActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            System.exit(0);
        public static void main(String[] args) {
            new Geometry();
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    public class Triangle
    public Triangle()
    TriangleModel tri = new TriangleModel(175,100,175,250,325,250);
    TriangleView view = new TriangleView(tri);
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(view.getUIPanel(), "North");
    f.getContentPane().add(view);
    f.getContentPane().add(view.getTablePanel(), "South");
    f.setSize(500,500);
    f.setLocation(200,200);
    f.setVisible(true);
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.event.MouseEvent;
    import javax.swing.JTable;
    import javax.swing.event.MouseInputAdapter;
    * TriangleControl.java
    * Created on 06 February 2005, 01:19
    * @author  Rahindra Naidoo
    public class TriangleControl extends MouseInputAdapter
        TriangleView view;
        TriangleModel model;
        Point start;
        boolean dragging, altering;
        Rectangle lineLens;            // used for line selection
        public TriangleControl(TriangleView tv)
            view = tv;
            model = view.getModel();
            dragging = altering = false;
            lineLens = new Rectangle(0, 0, 6, 6);
        public void mousePressed(MouseEvent e)
            Point p = e.getPoint();
            lineLens.setLocation(p.x - 3, p.y - 3);
            // are we over a line
            if(model.isLineSelected(lineLens))
                start = p;
                altering = true;
            // or are we within the triangle
            else if(model.contains(p))
                start = p;
                dragging = true;
        public void mouseReleased(MouseEvent e)
            altering = false;
            dragging = false;
            view.getCentroidLabel().setText("centroid location: " +
                                             model.findCentroid());
            view.repaint();  // for the construction lines
        public void mouseDragged(MouseEvent e)
            Point p = e.getPoint();
            if(altering)
                int x = p.x - start.x;
                int y = p.y - start.y;
                model.moveSide(x, y, p);
                updateTable();
                view.repaint();
                start = p;
            else if(dragging)
                int x = p.x - start.x;
                int y = p.y - start.y;
                model.translate(x, y);
                view.repaint();
                start = p;
        private void updateTable()
            String[] lengths = model.getLengths();
            String[] squares = model.getSquares();
            String[] angles  = model.getAngles();
            JTable table = view.getTable();
            for(int j = 0; j < angles.length; j++)
                table.setValueAt(lengths[j], 1, j + 1);
                table.setValueAt(squares[j], 2, j + 1);
                table.setValueAt(angles[j],  3, j + 1);
            view.getCentroidLabel().setText("centroid location: " +
                                             model.findCentroid());
    * TriangleModel.java
    * Created on 06 February 2005, 01:18
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    * @author  Rahindra Naidoo
    public class TriangleModel                      //  (x1, y1)
    {                                         //      |\
        static final int SIDES = 3;         //      | \
        private int cx, cy;                  //      |  \
        Polygon triangle;                     //      |_ _\ (x3, y3)
        int selectedIndex;                   //  (x2, y2)
        NumberFormat nf;
        Line2D[] medians;
        Point2D centroid;
        public TriangleModel(int x1, int y1, int x2, int y2, int x3, int y3)
            int[] x = new int[] { x1, x2, x3 };
            int[] y = new int[] { y1, y2, y3 };
            triangle = new Polygon(x, y, SIDES);
            nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(1);
        public boolean contains(Point p)
            // Polygon.contains doesn't work well enough
            return (new Area(triangle)).contains(p);
        public boolean isLineSelected(Rectangle r)
            Line2D line = new Line2D.Double();
            for(int j = 0; j < SIDES; j++)
                int[] x = triangle.xpoints;
                int[] y = triangle.ypoints;
                int x1 = x[j];
                int y1 = y[j];
                int x2 = x[(j + 1) % SIDES];
                int y2 = y[(j + 1) % SIDES];
                line.setLine(x1, y1, x2, y2);
                if(line.intersects(r))
                    selectedIndex = j;
                    return true;
            selectedIndex = -1;
            return false;
         * Only works for right triangle with right angle at (x2, y2)
        public void moveSide(int dx, int dy, Point p)
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            switch(selectedIndex)
                case 0:
                    x[0] += dx;
                    x[1] += dx;
                    break;
                case 1:
                    y[1] += dy;
                    y[2] += dy;
                    break;
                case 2:
                    double rise  = y[2] - y[0];
                    double run   = x[2] - x[0];
                    double slope = rise/run;
                    // rise / run == (y[2] - p.y) / (x[2] - p.x)
                    x[2] = p.x + (int)((y[2] - p.y) / slope);
                    // rise / run == (p.y - y[0]) / (p.x - x[0])
                    y[0] = p.y - (int)((p.x - x[0]) * slope);
        public void translate(int dx, int dy)
            triangle.translate(dx, dy);
        public Polygon getTriangle()
            return triangle;
        public String findCentroid()
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            // construct the medians defined as the line from
            // any vertex to the midpoint of the opposite line
            medians = new Line2D[x.length];
            for(int j = 0; j < x.length; j++)
                int next = (j + 1) % x.length;
                int last = (j + 2) % x.length;
                Point2D vertex = new Point2D.Double(x[j], y[j]);
                // get midpoint of line opposite vertex
                double dx = ((double)x[last] - x[next])/2;
                double dy = ((double)y[last] - y[next])/2;
                Point2D oppLineCenter = new Point2D.Double(x[next] + dx,
                                                           y[next] + dy);
                medians[j] = new Line2D.Double(vertex, oppLineCenter);
            // centroid is located on any median 2/3 the way from the
            // vertex (P1) to the midpoint (P2) on the opposite side
            double[] lengths = getSideLengths();
            double dx = (medians[0].getX2() - medians[0].getX1())*2/3;
            double dy = (medians[0].getY2() - medians[0].getY1())*2/3;
            double px = medians[0].getX1() + dx;
            double py = medians[0].getY1() + dy;
            //System.out.println("px = " + nf.format(px) +
            //                 "\tpy = " + nf.format(py));
            centroid = new Point2D.Double(px, py);
            return "(" + nf.format(px) + ",  " + nf.format(py) + ")";
        public String[] getAngles()
            double[] lengths = getSideLengths();
            String[] vertices = new String[lengths.length];
            for(int j = 0; j < lengths.length; j++)
                int opp  = (j + 1) % lengths.length;
                int last = (j + 2) % lengths.length;
                double top = lengths[j] * lengths[j] +
                             lengths[last] * lengths[last] -
                             lengths[opp] * lengths[opp];
                double divisor = 2 * lengths[j] * lengths[last];
                double vertex = Math.acos(top / divisor);
                vertices[j] = nf.format(Math.toDegrees(vertex));
            return vertices;
        public String[] getLengths()
            double[] lengths = getSideLengths();
            String[] lengthStrs = new String[lengths.length];
            for(int j = 0; j < lengthStrs.length; j++)
                lengthStrs[j] = nf.format(lengths[j]);
            return lengthStrs;
        public String[] getSquares()
            double[] lengths = getSideLengths();
            String[] squareStrs = new String[lengths.length];
            for(int j = 0; j < squareStrs.length; j++)
                squareStrs[j] = nf.format(lengths[j] * lengths[j]);
            return squareStrs;
        private double[] getSideLengths()
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            double[] lengths = new double[SIDES];
            for(int j = 0; j < SIDES; j++)
                int next = (j + 1) % SIDES;
                lengths[j] = Point.distance(x[j], y[j], x[next], y[next]);
            return lengths;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    * TriangleView.java
    * Created on 06 February 2005, 01:21
    public class TriangleView extends JPanel
        private TriangleModel model;
        private Polygon triangle;
        private JTable table;
        private JLabel centroidLabel;
        private boolean showConstruction;
        TriangleControl control;
        public TriangleView(TriangleModel model)
            this.model = model;
            triangle = model.getTriangle();
            showConstruction = false;
            control = new TriangleControl(this);
            addMouseListener(control);
            addMouseMotionListener(control);
        public void paintComponent(Graphics g)
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            g2.draw(triangle);
            if(model.medians == null)
                centroidLabel.setText("centroid location: " + model.findCentroid());
            // draw medians and centroid point
            if(showConstruction && !control.dragging)
                g2.setPaint(Color.red);
                for(int j = 0; j < 3; j++)
                    g2.draw(model.medians[j]);
                g2.setPaint(Color.blue);
                g2.fill(new Ellipse2D.Double(model.centroid.getX() - 2,
                                             model.centroid.getY() - 2, 4, 4));
        public TriangleModel getModel()
            return model;
        public JTable getTable()
            return table;
        public JLabel getCentroidLabel()
            return centroidLabel;
        public JPanel getUIPanel()
            JCheckBox showCon = new JCheckBox("show construction");
            showCon.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent e)
                    boolean state = ((JCheckBox)e.getSource()).isSelected();
                    showConstruction = state;
                    repaint();
            JPanel panel = new JPanel();
            panel.add(showCon);
            return panel;
        public JPanel getTablePanel()
            String[] headers = new String[] { "", "", "", "" };
            // row and column data labels
            String[] rowHeaders = {
                "sides", "lengths", "squares", "angles", "degrees"
            String[] sidesRow = { "vertical", "horizontal", "hypotenuse" };
            String[] anglesRow = { "hyp to ver", "ver to hor", "hor to hyp" };
            // collect data from model
            String[] angles  = model.getAngles();
            String[] lengths = model.getLengths();
            String[] squares = model.getSquares();
            String[][] allData = { sidesRow, lengths, squares, anglesRow, angles };
            int rows = 5;
            int cols = 4;
            Object[][] data = new Object[rows][cols];
            for(int row = 0; row < rows; row++)
                data[row][0] = rowHeaders[row];
                for(int col = 1; col < cols; col++)
                    data[row][col] = allData[row][col - 1];
            table = new JTable(data, headers)
                public boolean isCellEditable(int row, int col)
                    return false;
            DefaultTableCellRenderer renderer =
                (DefaultTableCellRenderer)table.getDefaultRenderer(String.class);
            renderer.setHorizontalAlignment(JLabel.CENTER);
            centroidLabel = new JLabel("centroid location:  ", JLabel.CENTER);
            Dimension d = centroidLabel.getPreferredSize();
            d.height = table.getRowHeight();
            centroidLabel.setPreferredSize(d);
            JPanel panel = new JPanel(new BorderLayout());
            panel.setBorder(BorderFactory.createTitledBorder("triangle data"));
            panel.add(table);
            panel.add(centroidLabel, "South");
            return panel;
    }PLEASE HELP ME TO LABEL THE TRIANGLE AND CHANGE THE VALUES OF THE JTABLE - to SHOW ASquare b Square and C square as well as a label on the bottom of the screen to show A^2 + B^2 = C^2 ...
    ThANKS

        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
            g2.drawPolygon(triangle);
            // label the triangle
            String[] lengths = model.getLengths();
            String[] squares = model.getSquares();
            String[] angles  = model.getAngles();
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            for(int j = 0; j < x.length; j++) {
                Point2D vertex = new Point2D.Double(x[j], y[j]);
                int next = (j + 0) % x.length;
                int last = (j + 1) % x.length;
                double dx = ((double)x[last] - x[next])/2;
                double dy = ((double)y[last] - y[next])/2;
                Point2D center = new Point2D.Double(x[next] + dx, y[next] + dy);
                g2.drawString(angles[j],(int)vertex.getX(),(int)vertex.getY());
                g2.drawString(lengths[j],(int)center.getX(),(int)center.getY());
            g2.drawString(squares[0],100, getHeight());
            g2.drawString(" + "+squares[1],150, getHeight());
            g2.drawString(" = "+squares[2],200, getHeight());
            if(model.medians == null)
                centroidLabel.setText("centroid location: " + model.findCentroid());
            // draw medians and centroid point
            if(showConstruction && !control.dragging) {
                g2.setPaint(Color.red);
                for(int j = 0; j < 3; j++)
                    g2.draw(model.medians[j]);
                g2.setPaint(Color.blue);
                g2.fill(new Ellipse2D.Double(model.centroid.getX() - 2,
                        model.centroid.getY() - 2, 4, 4));
        }

  • URGENT HELP REQUIRED _ Creating Labels for Triangle

    Hi everyone... the code below is my application - Pythagoras Theorem.. or rather displaying it.. But i have not been able to get the Vertex of the triangle Labelled as A B C... I need to do that and change the Triangle Table data to A B C insted of Horizontal Vertical and Hypotenuise and as the triangle is stretched on screen A B And C keep moving as well ...
    Besides i need to Show this in the tabel
    - Values of A ^ 2 , B^2 and C ^2 as welll as a row showing A^2+B^2 = C^2
    the code is as follows..
    This is the main class called Geometry
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    import java.lang.*;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import java.awt.FileDialog;
    import java.io.*;
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import javax.swing.JFrame;
    public class Geometry {
        CardLayout cards;
        JPanel panel;
        public Geometry() {
            cards = new CardLayout();
            panel = new JPanel(cards);
            addCards();
            JFrame f = new JFrame("Geometry");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setJMenuBar(getMenuBar());
            f.getContentPane().add(panel);
            f.setSize(500,500);
            f.setLocation(0,0);
            f.setVisible(true);
            f.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                public void mouseMoved(MouseEvent e) {
                   System.out.println("Mouse  " + e.getX() +","  + e.getY());
                public void mouseDragged(MouseEvent e) {
                    System.out.println("Draggg: x=" + e.getX() + "; y=" + e.getY());
            //            public void mouseMoved(MouseEvent me) {
            //                System.out.println("Moving: x=" + me.getX() + "; y=" + me.getY());
            //        panel.addMouseMotionListener(
            //        new MouseMotionListener() { //anonymous inner class
            //            //handle mouse drag event
            //           public void mouseDragged(MouseEvent me) {
            //               setTitle("Dragging: x=" + me.getX() + "; y=" + me.getY());
            //            public void mouseMoved(MouseEvent me) {
            //                setTitle("Moving: x=" + me.getX() + "; y=" + me.getY());
        private void addCards() {
            // card one
            TriangleModel tri = new TriangleModel(175,100,175,250,325,250);
            TriangleView view  = new TriangleView(tri);
            JPanel panelOne = new JPanel(new BorderLayout());
            panelOne.add(view.getUIPanel(), "North");
            panelOne.add(view);
            panelOne.add(view.getTablePanel(), "South");
            panelOne.setName("Pythagoras's Theorem");
            panel.add("Pythagoras's Theorem", panelOne);
                  view.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                 public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse at " + e.getX() +","  + e.getY());
               public void mouseDragged(MouseEvent e) {
                   System.out.println("Dragging: x=" + e.getX() + "; y=" + e.getY());
            // card two
            TestModel trin = new TestModel(175,100,175,250,325,250);
            TestView viewn  = new TestView(trin);
            JPanel panelTwo = new JPanel(new BorderLayout());
            panelTwo.add(viewn.getUIPanel(), "North");
          // panelTwo.setBackground(Color.blue);
            panelTwo.setName("Similar Triangles");
            panelTwo.add(viewn);
            panelTwo.add(viewn.getTablePanel(), "South");
                  viewn.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                 public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse at " + e.getX() +","  + e.getY());
               public void mouseDragged(MouseEvent e) {
                   System.out.println("Dragging: x=" + e.getX() + "; y=" + e.getY());
            panel.add("Similar Triangles", panelTwo);
            JPanel panelThree = new JPanel();
            panelThree.setBackground(Color.white);
            panelThree.setName("Circle Theorem1");
            panel.add("Circle Theorem1", panelThree);
        private JMenuBar getMenuBar() {
            JMenu File = new JMenu("File");
            JSeparator separator1 = new JSeparator();
            JMenuItem Open = new JMenuItem("Open");
    //         Open.addActionListener(new java.awt.event.ActionListener() {
    //            public void actionPerformed(java.awt.event.ActionEvent evt) {
    //                openActionPerformed(evt);
            JMenuItem Save = new JMenuItem("Save");
            JMenuItem Print = new JMenuItem("Print");
            JMenuItem Exit = new JMenuItem("Exit");
            Exit.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ExitActionPerformed(evt);
            JMenu theorem = new JMenu("Theorem");
            ActionListener l = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JMenuItem item = (JMenuItem)e.getSource();
                    String name = item.getActionCommand();
                    cards.show(panel, name);
            Component[] c = panel.getComponents();
            for(int j = 0; j < panel.getComponentCount(); j++) {
                String name = c[j].getName();
                JMenuItem item = new JMenuItem(name);
                item.setActionCommand(name);
                item.addActionListener(l);
                theorem.add(item);
            JMenuBar menuBar = new JMenuBar();
            JMenuBar menuBar1 = new JMenuBar();
            menuBar.add(File);
            File.add(Open);
            File.add(separator1);
            File.add(Save);
            File.add(Print);       
            File.add(Exit);
            menuBar.add(theorem);
            return menuBar;
    //    private void openActionPerformed(java.awt.event.ActionEvent evt) {
    //        FileDialog fileDialog = new FileDialog(this, "Open...", FileDialog.LOAD);
    //        fileDialog.show();
    //        if (fileDialog.getFile() == null)
    //            return;
    //        fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile();
    //        FileInputStream fis = null;
    //        String str = null;
    //        try {
    //            fis = new FileInputStream(fileName);
    //            int size = fis.available();
    //            byte[] bytes = new byte [size];
    //            fis.read(bytes);
    //            str = new String(bytes);
    //        } catch (IOException e) {
    //        } finally {
    //            try {
    //                fis.close();
    //            } catch (IOException e2) {
    //        if (str != null)
    //            textBox.setText(str);
        private void ExitActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            System.exit(0);
        public static void main(String[] args) {
            new Geometry();
    }import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    public class Triangle
    public Triangle()
    TriangleModel tri = new TriangleModel(175,100,175,250,325,250);
    TriangleView view = new TriangleView(tri);
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(view.getUIPanel(), "North");
    f.getContentPane().add(view);
    f.getContentPane().add(view.getTablePanel(), "South");
    f.setSize(500,500);
    f.setLocation(200,200);
    f.setVisible(true);
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.event.MouseEvent;
    import javax.swing.JTable;
    import javax.swing.event.MouseInputAdapter;
    * TriangleControl.java
    * Created on 06 February 2005, 01:19
    * @author  Rahindra Naidoo
    public class TriangleControl extends MouseInputAdapter
        TriangleView view;
        TriangleModel model;
        Point start;
        boolean dragging, altering;
        Rectangle lineLens;            // used for line selection
        public TriangleControl(TriangleView tv)
            view = tv;
            model = view.getModel();
            dragging = altering = false;
            lineLens = new Rectangle(0, 0, 6, 6);
        public void mousePressed(MouseEvent e)
            Point p = e.getPoint();
            lineLens.setLocation(p.x - 3, p.y - 3);
            // are we over a line
            if(model.isLineSelected(lineLens))
                start = p;
                altering = true;
            // or are we within the triangle
            else if(model.contains(p))
                start = p;
                dragging = true;
        public void mouseReleased(MouseEvent e)
            altering = false;
            dragging = false;
            view.getCentroidLabel().setText("centroid location: " +
                                             model.findCentroid());
            view.repaint();  // for the construction lines
        public void mouseDragged(MouseEvent e)
            Point p = e.getPoint();
            if(altering)
                int x = p.x - start.x;
                int y = p.y - start.y;
                model.moveSide(x, y, p);
                updateTable();
                view.repaint();
                start = p;
            else if(dragging)
                int x = p.x - start.x;
                int y = p.y - start.y;
                model.translate(x, y);
                view.repaint();
                start = p;
        private void updateTable()
            String[] lengths = model.getLengths();
            String[] squares = model.getSquares();
            String[] angles  = model.getAngles();
            JTable table = view.getTable();
            for(int j = 0; j < angles.length; j++)
                table.setValueAt(lengths[j], 1, j + 1);
                table.setValueAt(squares[j], 2, j + 1);
                table.setValueAt(angles[j],  3, j + 1);
            view.getCentroidLabel().setText("centroid location: " +
                                             model.findCentroid());
    * TriangleModel.java
    * Created on 06 February 2005, 01:18
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    * @author  Rahindra Naidoo
    public class TriangleModel                      //  (x1, y1)
    {                                         //      |\
        static final int SIDES = 3;         //      | \
        private int cx, cy;                  //      |  \
        Polygon triangle;                     //      |_ _\ (x3, y3)
        int selectedIndex;                   //  (x2, y2)
        NumberFormat nf;
        Line2D[] medians;
        Point2D centroid;
        public TriangleModel(int x1, int y1, int x2, int y2, int x3, int y3)
            int[] x = new int[] { x1, x2, x3 };
            int[] y = new int[] { y1, y2, y3 };
            triangle = new Polygon(x, y, SIDES);
            nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(1);
        public boolean contains(Point p)
            // Polygon.contains doesn't work well enough
            return (new Area(triangle)).contains(p);
        public boolean isLineSelected(Rectangle r)
            Line2D line = new Line2D.Double();
            for(int j = 0; j < SIDES; j++)
                int[] x = triangle.xpoints;
                int[] y = triangle.ypoints;
                int x1 = x[j];
                int y1 = y[j];
                int x2 = x[(j + 1) % SIDES];
                int y2 = y[(j + 1) % SIDES];
                line.setLine(x1, y1, x2, y2);
                if(line.intersects(r))
                    selectedIndex = j;
                    return true;
            selectedIndex = -1;
            return false;
         * Only works for right triangle with right angle at (x2, y2)
        public void moveSide(int dx, int dy, Point p)
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            switch(selectedIndex)
                case 0:
                    x[0] += dx;
                    x[1] += dx;
                    break;
                case 1:
                    y[1] += dy;
                    y[2] += dy;
                    break;
                case 2:
                    double rise  = y[2] - y[0];
                    double run   = x[2] - x[0];
                    double slope = rise/run;
                    // rise / run == (y[2] - p.y) / (x[2] - p.x)
                    x[2] = p.x + (int)((y[2] - p.y) / slope);
                    // rise / run == (p.y - y[0]) / (p.x - x[0])
                    y[0] = p.y - (int)((p.x - x[0]) * slope);
        public void translate(int dx, int dy)
            triangle.translate(dx, dy);
        public Polygon getTriangle()
            return triangle;
        public String findCentroid()
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            // construct the medians defined as the line from
            // any vertex to the midpoint of the opposite line
            medians = new Line2D[x.length];
            for(int j = 0; j < x.length; j++)
                int next = (j + 1) % x.length;
                int last = (j + 2) % x.length;
                Point2D vertex = new Point2D.Double(x[j], y[j]);
                // get midpoint of line opposite vertex
                double dx = ((double)x[last] - x[next])/2;
                double dy = ((double)y[last] - y[next])/2;
                Point2D oppLineCenter = new Point2D.Double(x[next] + dx,
                                                           y[next] + dy);
                medians[j] = new Line2D.Double(vertex, oppLineCenter);
            // centroid is located on any median 2/3 the way from the
            // vertex (P1) to the midpoint (P2) on the opposite side
            double[] lengths = getSideLengths();
            double dx = (medians[0].getX2() - medians[0].getX1())*2/3;
            double dy = (medians[0].getY2() - medians[0].getY1())*2/3;
            double px = medians[0].getX1() + dx;
            double py = medians[0].getY1() + dy;
            //System.out.println("px = " + nf.format(px) +
            //                 "\tpy = " + nf.format(py));
            centroid = new Point2D.Double(px, py);
            return "(" + nf.format(px) + ",  " + nf.format(py) + ")";
        public String[] getAngles()
            double[] lengths = getSideLengths();
            String[] vertices = new String[lengths.length];
            for(int j = 0; j < lengths.length; j++)
                int opp  = (j + 1) % lengths.length;
                int last = (j + 2) % lengths.length;
                double top = lengths[j] * lengths[j] +
                             lengths[last] * lengths[last] -
                             lengths[opp] * lengths[opp];
                double divisor = 2 * lengths[j] * lengths[last];
                double vertex = Math.acos(top / divisor);
                vertices[j] = nf.format(Math.toDegrees(vertex));
            return vertices;
        public String[] getLengths()
            double[] lengths = getSideLengths();
            String[] lengthStrs = new String[lengths.length];
            for(int j = 0; j < lengthStrs.length; j++)
                lengthStrs[j] = nf.format(lengths[j]);
            return lengthStrs;
        public String[] getSquares()
            double[] lengths = getSideLengths();
            String[] squareStrs = new String[lengths.length];
            for(int j = 0; j < squareStrs.length; j++)
                squareStrs[j] = nf.format(lengths[j] * lengths[j]);
            return squareStrs;
        private double[] getSideLengths()
            int[] x = triangle.xpoints;
            int[] y = triangle.ypoints;
            double[] lengths = new double[SIDES];
            for(int j = 0; j < SIDES; j++)
                int next = (j + 1) % SIDES;
                lengths[j] = Point.distance(x[j], y[j], x[next], y[next]);
            return lengths;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.NumberFormat;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableCellRenderer;
    * TriangleView.java
    * Created on 06 February 2005, 01:21
    public class TriangleView extends JPanel
        private TriangleModel model;
        private Polygon triangle;
        private JTable table;
        private JLabel centroidLabel;
        private boolean showConstruction;
        TriangleControl control;
        public TriangleView(TriangleModel model)
            this.model = model;
            triangle = model.getTriangle();
            showConstruction = false;
            control = new TriangleControl(this);
            addMouseListener(control);
            addMouseMotionListener(control);
        public void paintComponent(Graphics g)
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            g2.draw(triangle);
            if(model.medians == null)
                centroidLabel.setText("centroid location: " + model.findCentroid());
            // draw medians and centroid point
            if(showConstruction && !control.dragging)
                g2.setPaint(Color.red);
                for(int j = 0; j < 3; j++)
                    g2.draw(model.medians[j]);
                g2.setPaint(Color.blue);
                g2.fill(new Ellipse2D.Double(model.centroid.getX() - 2,
                                             model.centroid.getY() - 2, 4, 4));
        public TriangleModel getModel()
            return model;
        public JTable getTable()
            return table;
        public JLabel getCentroidLabel()
            return centroidLabel;
        public JPanel getUIPanel()
            JCheckBox showCon = new JCheckBox("show construction");
            showCon.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent e)
                    boolean state = ((JCheckBox)e.getSource()).isSelected();
                    showConstruction = state;
                    repaint();
            JPanel panel = new JPanel();
            panel.add(showCon);
            return panel;
        public JPanel getTablePanel()
            String[] headers = new String[] { "", "", "", "" };
            // row and column data labels
            String[] rowHeaders = {
                "sides", "lengths", "squares", "angles", "degrees"
            String[] sidesRow = { "vertical", "horizontal", "hypotenuse" };
            String[] anglesRow = { "hyp to ver", "ver to hor", "hor to hyp" };
            // collect data from model
            String[] angles  = model.getAngles();
            String[] lengths = model.getLengths();
            String[] squares = model.getSquares();
            String[][] allData = { sidesRow, lengths, squares, anglesRow, angles };
            int rows = 5;
            int cols = 4;
            Object[][] data = new Object[rows][cols];
            for(int row = 0; row < rows; row++)
                data[row][0] = rowHeaders[row];
                for(int col = 1; col < cols; col++)
                    data[row][col] = allData[row][col - 1];
            table = new JTable(data, headers)
                public boolean isCellEditable(int row, int col)
                    return false;
            DefaultTableCellRenderer renderer =
                (DefaultTableCellRenderer)table.getDefaultRenderer(String.class);
            renderer.setHorizontalAlignment(JLabel.CENTER);
            centroidLabel = new JLabel("centroid location:  ", JLabel.CENTER);
            Dimension d = centroidLabel.getPreferredSize();
            d.height = table.getRowHeight();
            centroidLabel.setPreferredSize(d);
            JPanel panel = new JPanel(new BorderLayout());
            panel.setBorder(BorderFactory.createTitledBorder("triangle data"));
            panel.add(table);
            panel.add(centroidLabel, "South");
            return panel;
    }PLEASE HELP ---- Also does any one know how to draw a Triangle on a screen which can be controlled by a JSlider such that as and whenits incremented the triangle increase and vice versa... I need to prove Similarity in triangles using A Jslider that controls one triangle while the other triangle is Still on screen

    Sharan,
    The code given was part of the assignment and you are supposed to make the changes for your part right?
    Please give details of what you have done so far and not expect us to do your assignment for you. We'll be glad to help answer questions and point to the right direction, but giving us the entire assignment and saying, very nicely I might add, "Please do it for me." Just seems to make a mockery of the hours, days, and years that many of us has spent earning our degrees and learning our skills.
    Work on it and ask specific questions with examples of what you have done and you'll get a much better response.

  • Boot image does not exist and cannot read disk label errors.

    Hi - I'm having a problem with installing Solaris 9 4/04 on a Netra T1. The Netra already has Solaris 7. I need to get this set up as a jumpstart server but it can't find the boot image. I'm using a brand new bonafide installation disk - not a copy. The system won't let me install/upgrade to Solaris 9 either. I get an error stating that disk label can't be read. I've tried swapping out the CDROM but I still get the same errors. Does anyone know what or why this may be happening? (Oh - and another strange thing - like I said the CDs are the original but there doesn't appear to be a cdrom/cdrom0/s0 directory. The directory I see is cdrom/cdrom0/sol_9_404_sparc/Solaris_9/Tools)
    ERROR: Install boot image /cdrom/sol_9_404_sparc/Solaris_9/Tools/Boot does not exist
    Check that boot image exists, or use [-t] to
    specify a valid boot image elsewhere.
    and
    Excuting last command: boot cdrom [- nowin]
    Boot device: /pci@1f,0/pc1@1/ide/cdrom@2:f file and args: [- nowin]
    Can't read disk label.
    Can't open disk label package
    Evaulating: boot cdrom [- nowin]@1/ide@e/cdrom@2:f File and args: [- nowin]
    Can't open boot device
    I appreciate any help at all - is there anyone out there who can tell me what I may be doing wrong?
    Thanks

    Hi check that you are booting of the right cd. Make sure it is soalris 9 software 1/2 if that fails then it may well be that your cd is buggered. most likely it is buggered it it cant find the boot image.

  • Close all folders in Mail?  Color Label folders?  Find folder?  And More!

    Hi all.
    I have a LOT of mail. They're all very organized, though. Heaps of Mailboxes (Folders) and Sub-folders.
    I also have heaps of rules dutifully sending incoming mail to their appropriate mailboxes.
    However...
    It has reached a point where one of of the major bottlenecks in my daily workflow is sorting through all these mailboxes.
    There are 5 primary mailboxes with perhaps 100-ish subfolders or sub-subfolders. Maybe more.
    When they are all open, or a lot of them are open, it is difficult to find the a specific folder when I need it. It would help if I could close all open folder with a shortcut.
    Is this possible?
    It would also help if I could visually distinguish each level. Can I color label the mailboxes(not the messages themselves)?
    Another help would be if I could run a search for a folder Mailbox name. Is this possible?
    Lastly when I create a rule I would love it if there was an option to 'Create new Mailbox' in the rule dialog box rather than having to create the mailbox first. Am I just missing this? See link for illustration:
    http://img.skitch.com/20080820-eaqmy89emw6xm5pcj86iuqu992.jpg

    I just had a look and you need to create the mailbox PRIOR to asking the rules to move it into that.
    Now, automator lets you create a new workflow, but not sure as to how to set that one up (might be possible; however, my mathematical brain tells what you want to achieve is flawed:
    1) IF new mail equals "tangerine", create new mailbox tangerine, then move message to mailbox "tangerine. (FINE so far!)
    2) the second "tangerine" message arrives, and the workflow should FAIL (because it cannot create a "new" mailbox "tangerine", as there is ALREADY a mailbox named "tangerine")
    3) if automator cannot execute "If" and "and" and the "sort by" all together, then distinguish (a "tangerine" message might actually need to go to "pear" but refers to "pears and tangerines", so it ends up in the wrong mailbox), you may have to start and restart mail, until all stages of the script have been executed.
    You see the problems?
    Anyhow, here is a link to some automator info:
    http://automatorworld.com/archives/automator-for-os-x-105-leopard-revealed/
    Good luck

  • How can I remove LABELS from my gmail account?

    How can I remove unwanted LABELS from the side bar unsung gmail?

    I assume you're using GMail as your primary e-mail account?  Try this.  This is how I am setup.  Not only will it move all your contacts to your phone but any changes made in GMail or on the iPhone will be sync'd with the server.
    http://www.google.com/support/mobile/bin/answer.py?answer=138740
    Note... I think this will delete your existing contacts from your device.  You will want to use iTunes to back them up and get them imported into GMail before you sync your device wtih GMail.

  • How to "Highlight/Color Label" a single event in Month View.

    Hi.
    How do i either Hightlight or Color Label a single event or a single calendar in Month View? Like the pic shows, the one on the right...
    Thank you for your time.

    Never Mind... Thank you though..
    It's an all day event...

  • Desktop and windows have all capital A's (AAAA...) instead of normal labels

    Hi, folks.
    While having trouble getting my AC power supply cord to power up the 'book (the cord wires were broken and the power would only flow if the cord were held in one position) the battery eventually was
    exhausted and the 'book shut down.
    This interruption caused the desktop menu, labels, and submenus, to all be labeled AAAAAAAAA....etc.
    The A's appear within box (square) shapes. For example the word 'view' looks like this AAAA but in boxes.
    I tried to rebuild the desktop but that didn't help. I wanted to trash the desktop preferences, but since everything is labeled AAAAAAA I can't find them! Even the master OS disk (Tiger) is littered with AAAAAA's! I can read the internet ok, however.
    What's going on?

    Hi Ddale53, and a warm welcome to the forums!
    http://discussions.apple.com/thread.jspa?messageID=7629337&#7629337
    http://discussions.apple.com/thread.jspa?threadID=856498&tstart=195

Maybe you are looking for

  • Text caption "call outs" not measured same way

    Captivate v5.5 When creating call out text captions I like them to be the same size when possible - regardless if the call out is pointing up (left or right) or down (left or right). Having created and sized a call out pointing down left - I then cre

  • How to Back Up iPhone to External Hard Drive via iTunes?

    Hi there, I want to be able to backup my iPhone 4 to an external harddrive since I don't have enough space on my MacBook Pro hard drive, how do I dothat? I have already moved all the iTunes libraries and media folder to that externaldrive and need to

  • How to make specific text not  appear in pdf print

    I would like to display some text only on screen, but not when printed on paper. How do I do that ?

  • Photosmart C5280 all-in-one Cartridges error message

    hi, I have a Photosmart C5280 all-in-one. It's been good until today when I got an error message: ! Print Cartridges refer to printer documentation. I've only ever used genuine HP cartridges. I have the correct ones in - 75XL tricolour and 74XL black

  • Compression settings not working on Premiere Pro CC

    I am a freelance editor working for a satellite delivery company. They have specific settings they require for their uplink signals. These setting have worked great on CS5, CS6 and CC2014. However the company is now using CC and these settings create