Collective Redress Green Paper: On November 27, 2008, the commission produced a green paper on the possibility of creating a European Union Collective Redress system for EU consumers. The green paper offers four possibilities for a new Collective Redress system. The EU Commission allows the European Community until March, 2009 to submit opinions regarding which type of collective redress system should be implemented. Currently, 13 Member States have introduced collective redress schemes into their legal system, (France, Germany, Finland, Sweden, Denmark, Bulgaria, Greece, the Netherlands, Italy, Spain, Portugal, Austria and the UK); however, most of these countries have done so only recently. An interesting part in the emergence of an EU "class action" system is the overt resistant to adopt features which resemble the U.S. class action system.
For example, in the introduction speech at the Collective Redress Conference introduction speech in Lisbon in November, 2008, Robert Medelin, Director General for Health and Consumer Protection European Commission, concludes: "It is crystal clear that probably nobody in this room – and not only those who have read the books of John Grisham – wants to have the excesses of the US-style class actions, characterised by a mixture of punitive damages, contingency fees, pre-trial discovery and opt-out system…" Click here to download the green paper on Collective Redress.
Cutting down a tree in Europe…could be a crime? On November 19, 2008, the EU passed Directive 2008/99/EC (binding in all 27 EU Member States) on the protection of the environment through criminal law. This directive will require all EU Member States to provide criminal penalties in national legislation with respect to serious infringements of provisions of Community Law on environment protection. Although this will not penalize grass cutters or loggers, the directive is a radical shift in European definition of environmental relationship. Read the directive.
Blue and white…Christmas? : This year, I was in the city of Paris during December for the first time and I have to admit that I was rather disappointed with the lack of Christmas spirit. Instead of the green and red tinsel hanging from every lamppost, or balconies displaying baby Jesus lying in a manger of hay, or rooftops covered with plastic reindeers and Santa's sleigh, I only saw the occasional blue and white light fixtures, with blue and white Christmas trees propped up on some of the sidewalks. In my investigation as to who could be the Grinch that would possibly steal Christmas, I came up with two suspects: 1) President Sarkozy and 2) global warming.
As you all know, the French President Sarkozy was the president of the European Union for the last six months. My hunch was that he chose to change the colors of Christmas to Blue and White so that the world would be reminded of his status as the European Emperor. Not only did he change the Eiffel tower to Blue with white stars, but he also decorated the rest of the town with the colors of his coat. Tenable argument but not too convincing.
My second hypothesis was that France chose to string blue and white Christmas lights in order to conserve energy. As you may know, the color blue tends to be the dimmest incandescent color of LED light so it could be argued that France chose these colors in order to reduce its consumption of electricity. However, this hypothesis proved moot when I discovered that the color an LED white/yellow light consumes the highest amount of electricity.
One last conclusion has proven quite convincing. One reason why France is painted in Blue and White hues could be simply because the colors of European countries are not green and red, but blue and white! In speaking with my colleague from Spain, I discovered that the colors are indeed blue and white in Spain. Maybe the colors of Christmas are Blue and White after all!
The independent clapper: After attending Moliere's 'Mariage Forcé', I was surprised to discover the audience clapped in unison. Most of the performances I have attended in France end in a similar way. Once, I attempted to maintain my status as an 'independent' American, refused to clap with all the others. As expected, the French collective body of clappers quickly reminded me that I am living in a socialist Democracy with their menacing glares and furrowed brows. Do birds of a feather truly flock together or could it be that some birds change the color of their feathers in order to flock with other birds?
La galette des rois: On January 6, 2009 I celebrated "La galette des rois" (Kings cake) with two Hastings students who were visiting Paris. Most Europeans (and New Orleans) celebrate Epiphany (the day the three wise men brought presents to Jesus) by gathering to eat a "galette des rois" and drink cider. The galette is made from flaky pastry dough and almond paste. In every galette there is a small baby Jesus (fève) hidden. Traditionally the person who cuts the slice containing the baby Jesus is a 'king/queen' for the day and must wear the plastic crown that comes with the cake. This tradition is over 2000 years old. Indeed, the Romans would offer this cake to the nobles at the end of December. Whoever found the 'fève' would be appointed king of the Feast. The Romans would use this 'fève' as a way of electing the King of the Feast in family celebrations and cultural festivals.
Attended Conference on the Values and Virtues of the European Union at The Institut de Droit Comparée (IDC) on Jan. 7, 2009.
Visited The European Court of Justice (ECJ) and Tribunal of First Instance (TFI) in Luxembourg on Dec. 15-17, 2008.
Summary: The Director of our LL.M. program took us on a trip to Luxembourg to visit the ECJ where we had the pleasure of meeting the ECJ President (equivalent of the Chief Justice of the Supreme Court in the U.S.). We also sat in on two cases in which multiple countries pleaded their case before a panel of five judges on the merits of whether Belgium's unemployment laws hindered the free movement of services in Europe. I was impressed with the observation of the different ways in which each country pleaded the case and the different attire each country required the attorney to wear.
Christmas and the New Year: On December 23, I arrived safely in San Francisco where I was greeted by my boyfriend, family and friends. For Christmas, I enjoyed a wonderful trip to Napa, card games, wii, rock band and great food. I celebrated New Year's Eve in Lake Tahoe where I was surrounded by loved ones, amazing champagne, and canvases painted with images of trees, lakes, and rivers.
Second Semester has started: Last week, I resumed classes again and am still adjusting to the work load. At the moment, I am working on two papers: the first looks at Roman private law and compares a Roman 'societas' with the modern enterprise. In the second paper, I will discuss the feasibility of a CSR European enterprise. Currently, the EU has created a European L.L.C (Societas Europeae) and a European Cooperative Society (Societas Cooperative Europeae) and is in the process of proposing a third option which may be quite interesting for social entrepreneurs.
Moliere's 'Mariage Forcé' In December, I saw Pierre Pradina's interpretation of Moliere's 'Mariage forcé' (forced marriage) in the Comedie Française theater located in the Louvre. Moliere originally wrote Mariage Forcé for Louis XIV in 1664. Le Mariage Forcé entered the Comedie-Française repertoire on September 12, 1680. I was so honored to have the opportunity to attend a play in the same place of its first debut almost 400 years ago. The play is a brilliant critique on different philosophies of the 17th century and presents a simple story of an older man who is in love with a young woman but is unsure whether he should marry her. After he discovers she is unfaithful, he tries to 'break the contract' made with her father but is unsuccessful in his attempt and is 'forced' to marry her. I enjoyed the tragically humorous twist in the end!
Karl Marx Museum: While in Trier, Germany, I visited the house where Karl Marx was born, which is now a museum. I was impressed to discover that Marx was a fan of Paris and came quite frequently to discuss his ideas among French and German philosophers. In fact, Marx met Friedrich Engels in 1844 at the Café de la Régence on the Place du Palais.
Yoshi's Jazz Club: In December, 2008, I attended Roy Hargrove Big Band concert with my family at Yoshi's Jazz Club in Oakland, Ca. My favorite aspect was the diversity of music and Hargrove's plaid suit and purple satin shirt.


Retired assassin Arthur Bishop is living undercover in Brazil when an old acquaintance kidnaps the woman Arthur loves and orders him to perform three kills.
English dialogue; English descriptive audio; optional English or Spanish subtitles. English subtitles for the deaf and hard of hearing.
Sequel to "The Mechanic" (2011).
DTS-HD Master Audio 5.1, wide screen 1.85:1.
Container indicates running time of 105 minutes.
Features: Engineering the sequel : inside Mechanic : resurrection, Scoring the action film with Mark Isham, The Malaysian prison, Michelle Yeoh : secret ally, Statham stunts.
Cinematographer, Daniel Gottschalk ; production designer, Sebastian T. Krawinkel ; editors, Ueli Christen, Michael J. Duthie, Todd E. Miller ; music, Mark Isham.
Jason Statham, Jessica Alba, Tommy Lee Jones, Michelle Yeoh, Sam Hazeldine.
2 videodiscs (99 min.) : sound, color ; 4 3/4 in.
Blu-ray, region A, widescreen 16 x 9, 2.40:1; Dolby Atmos, 2.0 Dolby digital. This is a Blu-ray disc made for Blu-ray disc players and will not play in standard DVD players.; DVD, region 1.
Summit Entertainment and Millennium Films present ; a film by Dennis Gansel ; a Chartoff Winkler production and Millennium Films production ; producers, William Chartoff, Robert Earl, John Thompson, David Winkler ; screenplay, Philip Shelby, Tony Mosher ; directed by Dennis Gansel.
Add tags for "Mechanic. Resurrection h[videorecording (DVD)]". Be the first.
schema:exampleOfWork <http://worldcat.org/entity/work/id/5516227199> ; # Mechanic, resurrection (Motion picture).
<http://worldcat.org/entity/work/id/5516227199> # Mechanic, resurrection (Motion picture).


affordable sofas couches vanities vanity benches dressers bedside floor lamps best bedside lamp houzz beds frames bases bookcases storage with houzz beds.
gallery of and last a colorful and cheerful built in beds here again the beds where positioned in a row in order to maximize space in a narrow attic with houzz beds.
wall mounted bunk bed houzz with houzz beds.
perfect wonderful fancy headboards for beds fancy headboards for adjustable beds about remodel metal with houzz beds.
childrens bunk bed kids farmhouse with white bunk bed bunk beds bunk beds with houzz beds.
full size of platform bedmodern platform beds and bed frames allmodern knotch panel floor with houzz beds.
free here are houzz platform bed furniture stores in with bedroom also baseboard beige carpet crown here are houzz platform bed with houzz beds.
latest rustic wood bedroom furniture sets uv furniture with houzz beds.
gallery of shop midcentury sofa beds sleeper sofas on houzz with houzz beds.
cheap inspired loft beds for teens in kids eclectic with wooden sofa next to loft decor alongside ikea closets and my houzz with houzz beds.
elegant canopy designs for beds best canopy beds ideas on pinterest canopy bedroom canopy decoration ideas with houzz beds.
bunk beds adults with houzz beds.
free murphy bed for modern houzz with houzz beds.
built in storage unit around bed houzz inside built in beds with storage with houzz beds.
affordable weathered wood bedroom furniture houzz for new home weathered wood bed decor with houzz beds.
amazing corner bunk beds houzz with houzz beds.
good castle bunk beds houzz with houzz beds.
remarkable modern canopy bed best modern canopy bed design ideas remodel pictures houzz with houzz beds.
awesome file info houzz alcove beds downstairs alcove bed houzz alcove beds with houzz beds.
elegant full size of home houzz kids bedrooms beds awesome girl bedroom design ideas with houzz beds.
trendy san francisco tall headboard beds bedroom with upholstered bed platform tufted with houzz beds.
fabulous gina taterus of a coastal home went more nautical with these two extralong single beds to cut down on weight taterus paired with a local millworker to with houzz beds.
simple murphy bed for modern houzz with houzz beds.
top houzz platform beds with houzz beds.
simple canopy designs for beds best canopy beds ideas on pinterest canopy bedroom canopy decoration ideas with houzz beds.
perfect classic wicker double chaise lounge bed sofa in bedroom houzz master with houzz beds.
simple inn houzz wc quarto de beliches bunk beds wc with houzz beds.
canopy beds for sale bedroom sets also with a king size bed frame canopy beds for sale canopy beds for sale luxurious over with houzz beds.
roche bobois sofa for sale roche bobois sectional sofa houzz rent a center sofa beds with houzz beds.
toddler boy room ideas houzz lovely children bunk beds with houzz beds.
beautiful white plates above bed via houzz with houzz beds.
awesome custom bunk bed custom bunk beds houzz best custom bunk beds inside kids custom beds ordinary with houzz beds.
houzz headboards bedroom with mirrored furniture upholstered headboard with houzz beds.
luxury houzz teenage rooms home design ideas bedroom little boys beds for teen room amazing of interesting cool designs guys elegant modern interior h with houzz beds.
top impressive bookshelf murphy bed houzz in bookshelf murphy bed attractive with houzz beds.
queensize beds goldilocks might have chosen the queensize bed being just right it is a great size for two people and does not require a larger room with houzz beds.
top we always effort to show a picture with hd resolution or at least with perfect images houzz green walls living room can be with houzz beds.
amlet bed by bonaldo beds with houzz beds.
affordable wonderful kids tent bed houzz throughout tent bed for kids popular with houzz beds.
gallery of classic wicker double chaise lounge bed sofa in bedroom houzz master with houzz beds.
interesting take a look at these murphy beds on houzz weure always looking for inspiration donut forget to follow us there tou with houzz beds.
baby nursery fetching end bed bench modern neutral master bedroom ideas tic size bedrooms bedding with houzz beds.
simple interiors top coolest kids bunk beds houzz with houzz beds.
gallery of amsterdam trundle beds ikea bedroom shabbychic style with my houzz upholstered headboard reading lamp with houzz beds.
great living room peaceful design ideas cool beds for teen girls loft teenage rooms inspiration with houzz beds.
boy bedroom teen boys beds room p home design houzz throughout brilliant for how to decorate decorate a boy teen room apartment design district dallas with houzz beds.
amazing houzz headboards bedroom with mirrored furniture upholstered headboard with houzz beds.
lots of beds with houzz beds.
free impressive bookshelf murphy bed houzz in bookshelf murphy bed attractive with houzz beds.
latest shocking ideas modern wall beds murphy bed houzz with decor with houzz beds.
finest roche bobois sofa for sale roche bobois sectional sofa houzz rent a center sofa beds with houzz beds.
trendy we always effort to show a picture with hd resolution or at least with perfect images houzz green walls living room can be with houzz beds.
wenge modern beds on houzz with houzz beds.
gallery of twin murphy beds inside multimo castello over full bed with table reviews prepare with houzz beds.
simple nice canopy bed with curtains and best canopy beds ideas on home decor canopy for with houzz beds.
elegant baby nursery fetching end bed bench modern neutral master bedroom ideas tic size bedrooms bedding with houzz beds.
finest boy bedroom teen boys beds room p home design houzz throughout brilliant for how to decorate decorate a boy teen room apartment design district dallas with houzz beds.
living room peaceful design ideas cool beds for teen girls loft teenage rooms inspiration with houzz beds.
gallery of wonderful queen day bed houzz with regard to queen day bed attractive with houzz beds.
gallery of bunk beds adults with houzz beds.
cheap wonderful queen day bed houzz with regard to queen day bed attractive with houzz beds.
pretty soft color palette nice bench from houzz with houzz beds.
shocking ideas modern wall beds murphy bed houzz with decor with houzz beds.
cheap gorgeous with houzz beds.
excellent twin murphy beds inside multimo castello over full bed with table reviews prepare with houzz beds.
beautiful wwwhouzzcom with houzz beds.
fabulous surprising ideas twin bed ideas simple houzz with houzz beds.
top take a look at these murphy beds on houzz weure always looking for inspiration donut forget to follow us there tou with houzz beds.
farmhouse canopy bed pottery barn for belgian flax linen diamond quilt sham o canopybeds with houzz beds.
interesting attractive murphy beds built in couch houzz with houzz beds.
four poster beds with curtains four poster bed with curtains houzz home decor ideas with houzz beds.
beautiful childrens bunk bed kids farmhouse with white bunk bed bunk beds bunk beds with houzz beds.
wooden white bed design lime green satin pillows white painted wood glass doors comfortable soft linen spring bed grey bed cover double nighstand together with houzz beds.
simple full size of home designs for teens bunk beds girls with storage designing with houzz beds.
excellent teenage girl bedrooms houzz www redglobalmx org with houzz beds.
trendy here are houzz platform bed furniture stores in with bedroom also baseboard beige carpet crown here are houzz platform bed with houzz beds.
good interiors top coolest kids bunk beds houzz with houzz beds.
top wooden white bed design lime green satin pillows white painted wood glass doors comfortable soft linen spring bed grey bed cover double nighstand together with houzz beds.
houzz teen bedrooms how to decorate a boring teenage with houzz beds.
awesome here are houzz platform bed rustic platform bed bedroom eclectic with rolling nightstand wooden wall mirrors here are houzz platform bed with houzz beds.
simple luxury houzz teenage rooms home design ideas bedroom little boys beds for teen room amazing of interesting cool designs guys elegant modern interior h with houzz beds.
latest take inspiration from dorm style and put the kidsu beds lengthwise with houzz beds.
finest built in storage unit around bed houzz inside built in beds with storage with houzz beds.
gallery of san francisco tall headboard beds bedroom with upholstered bed platform tufted with houzz beds.
simple undefined with houzz beds.
great wonderful fancy headboards for beds fancy headboards for adjustable beds about remodel metal with houzz beds.
top kids bedrooms with beds houzz beds houzz with houzz beds.
designer tim clarke design image via houzz with houzz beds.
latest here are houzz platform bed rustic platform bed bedroom eclectic with rolling nightstand wooden wall mirrors here are houzz platform bed with houzz beds.
best zen bedroom lovely serenely stylish modern zen bedrooms with houzz beds.
four hands furniture kensington aidan bed platform beds houzz liked on polyvore featuring with houzz beds.
perfect midcentury sofa beds sleeper sofas with houzz beds.
gallery of houzz master bedroom with wooden bedroom sets bedroom traditional and vaulted ceiling with houzz beds.
elegant marvelous white twin bunk beds shop houzz adarn safe functional white youth twin storage loft with houzz beds.
free kids bed design were houzz awesome circle beds for kids amazing best green kids bed detachable rails available spectrum platform top circle beds for kids with houzz beds.
stunning full size of home houzz kids bedrooms beds awesome girl bedroom design ideas with houzz beds.
weathered wood bedroom furniture houzz for new home weathered wood bed decor with houzz beds.
good fabulous bunk beds for teens best bunk beds for teenagers design ideas remodel pictures houzz with houzz beds.
stunning sofas couches vanities vanity benches dressers bedside floor lamps best bedside lamp houzz beds frames bases bookcases storage with houzz beds.
stunning image of houzz kids pirate ship bed with houzz beds.
affordable midcentury sofa beds sleeper sofas with houzz beds.
design the most amazing trundle bunk beds with storage for small houzz master bathrooms with houzz beds.
awesome pretty soft color palette nice bench from houzz with houzz beds.
free whitewashed four poster bed ideas houzz within four poster beds with houzz beds.
finest toddler boy room ideas houzz lovely children bunk beds with houzz beds.
amazing their scale as in this photo works with traditional furniture such as fourposter bed frames with houzz beds.
finest full size of home designs for teens bunk beds girls with storage designing with houzz beds.
cool crescent beds beds with houzz beds.
cheap canopy beds for sale california king bed houzz canopy beds for sale best ideas on pinterest bed canopy beds for sale with houzz beds.
interesting practical murphy bed wwwhouzzcom with houzz beds.
simple beds leather headboards bedroom design ideas pictures remodel sets with low houzz closet ideas for with houzz beds.
awesome courtesy via houzzcom with houzz beds.
beautiful attractive murphy beds built in couch houzz with houzz beds.
bedroom houzz master bedroom lighting design ideas of recessed ball glass bulb hanging lamp red with houzz beds.
latest design the most amazing trundle bunk beds with storage for small houzz master bathrooms with houzz beds.
cool modern king bed houzz for king bed plan with houzz beds.
beautiful donco kids donco kids louver bunk twin over full bunk beds with houzz beds.
top farmhouse canopy bed pottery barn for belgian flax linen diamond quilt sham o canopybeds with houzz beds.
free wonderful platform bed with headboard platform bed without headboard bed headboard designs bed with houzz beds.
beautiful houzz beds with houzz beds.
houzz beds with houzz beds.
free inspired loft beds for teens in kids eclectic with wooden sofa next to loft decor alongside ikea closets and my houzz with houzz beds.
beautiful brilliant california king canopy bed houzz regarding california king canopy beds with houzz beds.
elegant castle bunk beds houzz with houzz beds.
affordable oversized headboards oversized headboard houzz beds with houzz beds.
trendy zen bedroom lovely serenely stylish modern zen bedrooms with houzz beds.
affordable twin four poster bed beds houzz with houzz beds.
gallery of wrought iron beds bedroom beach with batten strips bedding bedroom with houzz beds.
cool designer tim clarke design image via houzz with houzz beds.
perfect gorgeous bunk bed with drawers bunk beds houzz with houzz beds.
best donco kids donco kids louver bunk twin over full bunk beds with houzz beds.
whitewashed four poster bed ideas houzz within four poster beds with houzz beds.
courtesy via houzzcom with houzz beds.
great undefined with houzz beds.
good bedroom houzz master bedroom lighting design ideas of recessed ball glass bulb hanging lamp red with houzz beds.
free surprising ideas twin bed ideas simple houzz with houzz beds.
excellent gina taterus of a coastal home went more nautical with these two extralong single beds to cut down on weight taterus paired with a local millworker to with houzz beds.
simple shop midcentury sofa beds sleeper sofas on houzz with houzz beds.
beds leather headboards bedroom design ideas pictures remodel sets with low houzz closet ideas for with houzz beds.
affordable full size of platform bedmodern platform beds and bed frames allmodern knotch panel floor with houzz beds.
kids bed design were houzz awesome circle beds for kids amazing best green kids bed detachable rails available spectrum platform top circle beds for kids with houzz beds.
good canopy beds for sale california king bed houzz canopy beds for sale best ideas on pinterest bed canopy beds for sale with houzz beds.
excellent beautiful laura ashley beds farmhouse bedroom design ideas remodels amp photos houzz with houzz beds.
affordable wwwhouzzcom with houzz beds.
great take inspiration from dorm style and put the kidsu beds lengthwise with houzz beds.
teenage girl bedrooms houzz www redglobalmx org with houzz beds.
free modern king bed houzz for king bed plan with houzz beds.
corner bunk beds houzz with houzz beds.
stunning cool canopy bed frames design ideas best canopy bed design ideas remodel pictures houzz with houzz beds.
affordable image of houzz kids pirate ship bed with houzz beds.
interesting nice canopy bed with curtains and best canopy beds ideas on home decor canopy for with houzz beds.
headboards for twin beds which perfect for unique bedroom set and king headboard twin bed houzz source digsdigsm with houzz beds.
best marvelous white twin bunk beds shop houzz adarn safe functional white youth twin storage loft with houzz beds.
wonderful kids tent bed houzz throughout tent bed for kids popular with houzz beds.
finest inn houzz wc quarto de beliches bunk beds wc with houzz beds.
cool kids bedrooms with beds houzz beds houzz with houzz beds.
interesting oversized headboards oversized headboard houzz beds with houzz beds.
finest houzz platform beds with houzz beds.
top wonderful platform bed with headboard platform bed without headboard bed headboard designs bed with houzz beds.
fabulous houzz master bedroom with wooden bedroom sets bedroom traditional and vaulted ceiling with houzz beds.
finest cool canopy bed frames design ideas best canopy bed design ideas remodel pictures houzz with houzz beds.
great white plates above bed via houzz with houzz beds.
cool houzz in beds houzz beds houzz with houzz beds.
beautiful laura ashley beds farmhouse bedroom design ideas remodels amp photos houzz with houzz beds.
wrought iron beds bedroom beach with batten strips bedding bedroom with houzz beds.
file info houzz alcove beds downstairs alcove bed houzz alcove beds with houzz beds.
good four hands furniture kensington aidan bed platform beds houzz liked on polyvore featuring with houzz beds.
elegant houzz in beds houzz beds houzz with houzz beds.
gorgeous bunk bed with drawers bunk beds houzz with houzz beds.
fabulous twin four poster bed beds houzz with houzz beds.
thanks to houzz for featuring our project in your latest story on the best platform beds with houzz beds.
latest headboards for twin beds which perfect for unique bedroom set and king headboard twin bed houzz source digsdigsm with houzz beds.
cheap give your bedroom a style lift with a fully or partially suspended bed u or one that just mimics the look with houzz beds.
crescent beds beds with houzz beds.
interesting undefined with houzz beds.
fabulous houzz teen bedrooms how to decorate a boring teenage with houzz beds.
their scale as in this photo works with traditional furniture such as fourposter bed frames with houzz beds.
finest lots of beds with houzz beds.
elegant fabulous bunk beds for teens best bunk beds for teenagers design ideas remodel pictures houzz with houzz beds.
amazing give your bedroom a style lift with a fully or partially suspended bed u or one that just mimics the look with houzz beds.
rustic wood bedroom furniture sets uv furniture with houzz beds.
top amsterdam trundle beds ikea bedroom shabbychic style with my houzz upholstered headboard reading lamp with houzz beds.
brilliant california king canopy bed houzz regarding california king canopy beds with houzz beds.
excellent thanks to houzz for featuring our project in your latest story on the best platform beds with houzz beds.
stunning remarkable modern canopy bed best modern canopy bed design ideas remodel pictures houzz with houzz beds.
perfect and last a colorful and cheerful built in beds here again the beds where positioned in a row in order to maximize space in a narrow attic with houzz beds.
Page rendered in 0.167958 seconds.


For business customers with established Industricals.com credit, payment terms are net thirty (30) days from the date of invoice.
All credit extended by Industricals.com to customer, and the limits of such credit, is at Industricals.com sole discretion, and may be reduced or revoked by us at any time, for any reason.
Anticipation and cash discounts are not allowed. Industricals.com shall have the right of set-off the deduction for any amount owed by customer to Industricals.com.
Each of the customers? subsidiaries and affiliates purchasing from Industricals.com will be jointly and severally liable for purchases with customer.
The company reserves the right to charge a convenience fee for late payments. Industricals.com further reserves the right to charge the customer a late payment fee at the rate of one and one-half percent (1.5%) of the amount due for each month or portion thereof that the amount due remains unpaid, or such lesser amount as may be permitted under the applicable law.
If any customer fails to make payment within thirty (30) days of invoice, or fails to comply with Industricals.com's credit terms, or fails to supply adequate assurance of full performance to Industricals.com within a reasonable time after being requested by Industricals.com (such times as specified in Industricals.com's request), the company may defer shipments untill such payment or compliance is made, require cash in advance for any further shipments, demand immediate payment of all amounts then owed, elect to pursue collection action (including without limitation, attorneys' fees and any and all other associated costs of collection), and/or may, at its option cancel all or any part of an unshipped order.


text:
Q: How to get the true x and y coordinates of a JTextField I had an issue with a piece of code I was writing where I was adding JPanel's inside of others to form a layout. The issue is that after the window is displayed I needed to get the x and y coordinates of one of the text fields but whenever I try using the getX() and getY() methods they keep returning 0. I have verified that the getX() and getY() methods are being called after the window is initialized and displayed. How can I fix this and get the actual coordinates of the text field.
This is window code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.concurrent.TimeUnit;

import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class GraphicsPanel extends JFrame implements ActionListener, CaretListener{

    JPanel buttonPanel = new JPanel();
    JPanel mainPanel = new JPanel();
    JPanel animationPanel = new JPanel();
    JPanel bottomPanel = new JPanel();
    JPanel text = new JPanel();

    PokemonLearnsets info = new PokemonLearnsets();

    HealthBar healthBar1 = new HealthBar();
    HealthBar healthBar2 = new HealthBar();

    JTextArea textArea = new JTextArea();
    JTextField response = new JTextField();

    int health1 = 100;
    int total1 = 100;
    int health2 = 100;
    int total2 = 100;
    int startOfRect = 1;
    int p1MonNum = -1;
    int waitTime = 20;
    int p2MonNum = -1;

    TextInterface theText;

    Icon allIcons[][];
    JLabel p1Gif;
    JLabel p2Gif;

    JPanel mainBuilderPanel = new JPanel();
    JPanel builderPanel = new JPanel();
    JPanel builderMessagePanel = new JPanel();

    JPanel monPanels [] = new JPanel[6];
    JPanel imagePanels[] = new JPanel[6];
    JPanel namePanels[] = new JPanel[6];
    JPanel movePanels[] = new JPanel[6];

    JPanel allMoves[][] = new JPanel[6][4];

    JTextField names[] = new JTextField[6];

    JTextField moves[][] = new JTextField[6][4];

    JButton validate = new JButton("Validate");

    JLabel tempImages[] = new JLabel[6];
    JLabel emptyLabels[] = new JLabel[6];

    AutoSuggestor [] nameSuggestions = new AutoSuggestor[6];

    AutoSuggestor [][] moveSuggestions = new AutoSuggestor[6][4];

    public GraphicsPanel(String name){

        super(name);

        setupTeamBuilderPanel();

//      setupBattlePanel();
    }

    private void setupTeamBuilderPanel() {

        Container c = getContentPane();

        mainBuilderPanel.setLayout(new BorderLayout());
        mainBuilderPanel.setBorder(new LineBorder(Color.BLACK, 2));
        builderPanel.setLayout(new GridLayout(1, 0));
        builderPanel.setBorder(new LineBorder(Color.BLACK, 1));
        builderMessagePanel.setBorder(new LineBorder(Color.BLACK, 2));

        for (int i = 0; i < monPanels.length; i ++) {

            monPanels[i] = new JPanel();
            imagePanels[i] = new JPanel();
            namePanels[i] = new JPanel();
            movePanels[i] = new JPanel();

            names[i] = new JTextField();

            names[i].addCaretListener(this);

            emptyLabels[i] = new JLabel();
            tempImages[i] = emptyLabels[i];

            monPanels[i].setBorder(new LineBorder(Color.BLACK, 3));
            imagePanels[i].setBorder(new LineBorder(Color.BLACK, 3));
            movePanels[i].setBorder(new LineBorder(Color.BLACK, 3));

            monPanels[i].setLayout(new GridLayout(0 ,1));
            namePanels[i].setLayout(new GridLayout(1, 0));
            movePanels[i].setLayout(new GridLayout(0, 1));
            imagePanels[i].setLayout(new BorderLayout());

            namePanels[i].add(new JLabel("      Name:"));
            namePanels[i].add(names[i]);
            imagePanels[i].add(tempImages[i]);
            imagePanels[i].add(namePanels[i], BorderLayout.SOUTH);
            monPanels[i].add(imagePanels[i]);

            for (int k = 0; k < moves[i].length; k ++) {

                moves[i][k] = new JTextField();

                allMoves[i][k] = new JPanel();

                allMoves[i][k].setLayout(new GridLayout(0, 1));

                allMoves[i][k].add(new JLabel(" Move " + Integer.toString(k + 1) + ":"));
                allMoves[i][k].add(moves[i][k]);
                allMoves[i][k].add(new JLabel());
                allMoves[i][k].add(new JLabel());

                movePanels[i].add(allMoves[i][k]);

            }

            monPanels[i].add(movePanels[i]);

            builderPanel.add(monPanels[i]);

        }

        String welcomeMessage = "";

        for (int i = 0; i < 5; i ++) {

            welcomeMessage += " ";

        }

        welcomeMessage += "Welcome to the Teambuilder!";

        setupSuggestions();

        validate.addActionListener(this);

        builderMessagePanel.add(new JLabel(welcomeMessage));
        mainBuilderPanel.add(builderMessagePanel, BorderLayout.NORTH);
        mainBuilderPanel.add(validate, BorderLayout.SOUTH);
        mainBuilderPanel.add(builderPanel);

        c.add(mainBuilderPanel);
    }

    private void setupBattlePanel() {

        Container c = getContentPane();

        mainPanel.setLayout(new GridLayout());
        bottomPanel.setLayout(new GridLayout());

        animationPanel.setBorder(new LineBorder(Color.BLACK, 3));
        animationPanel.setLayout(new GridLayout(0, 2));

        mainPanel.add(animationPanel);

        buttonPanel.setBorder(new LineBorder(Color.BLACK, 3));
        buttonPanel.setLayout(new FlowLayout(5));
        buttonPanel.setBackground(Color.GREEN);
//      buttonPanel.add(new JLabel("                 "));
//      buttonPanel.add(new JButton("Testing"));
//      buttonPanel.add(new JButton("Testing"));
//      buttonPanel.add(new JButton("Testing"));
//      buttonPanel.add(new JButton("Testing"));

        bottomPanel.add(buttonPanel);

        text.setLayout(new GridLayout());
        text.setBorder(new LineBorder(Color.BLACK, 3));
        text.add(response);

        bottomPanel.add(text);

        textArea.setWrapStyleWord(true);
        textArea.setLineWrap(true);

        textArea.setEditable(false);
        textArea.setBackground(Color.LIGHT_GRAY);
        JScrollPane textAreaPane = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
        ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        textAreaPane.setBorder(new LineBorder(Color.BLACK, 3));

        mainPanel.add(textAreaPane);

        c.add(mainPanel, BorderLayout.CENTER);

        c.add(bottomPanel, BorderLayout.SOUTH);

    }

    private void setupSuggestions() {

        ArrayList<String> allPossibleMoves = new ArrayList<String>();

        Collections.addAll(allPossibleMoves, info.getAllMoves());

        for (int i = 0; i < 6; i ++) {

            for (int k = 0; k < 4; k ++) {

                moveSuggestions[i][k] = new AutoSuggestor(moves[i][k], allPossibleMoves, Color.WHITE.brighter(), Color.BLACK, Color.BLACK, 0.75f);
                moveSuggestions[i][k].setTextField(moves[i][k]);

            }

        }

    }

    public void writeToScreen(String writing) {
        String current = textArea.getText();
        textArea.setText(current + writing);
    }

    public void updateAll() {

        mainPanel.updateUI();
        bottomPanel.updateUI();
        mainBuilderPanel.updateUI();

    }

    public void setTextInterface(TextInterface text) {
        theText = text;
        response.addActionListener(theText.action);
    }

    public void drawMons(String name1, String name2) {

        animationPanel.removeAll();

        ImageIcon secImage = new ImageIcon(this.getClass().getResource("SpritesFront/" + name2 + ".gif"));
        secImage = new ImageIcon(secImage.getImage().getScaledInstance((int)(secImage.getIconWidth() * 1.5), (int)(secImage.getIconHeight() * 1.5), Image.SCALE_DEFAULT));
        Icon icon = secImage;
        p2Gif = new JLabel(icon);

        ImageIcon firstImage = new ImageIcon(this.getClass().getResource("SpritesBack/" + name1 + "-back.gif"));
        firstImage = new ImageIcon(firstImage.getImage().getScaledInstance((int)(firstImage.getIconWidth() * 1.5), (int)(firstImage.getIconHeight() * 1.5), Image.SCALE_DEFAULT));
        Icon icon2 = firstImage;
        p1Gif = new JLabel(icon2);

        animationPanel.add(healthBar2);
        animationPanel.add(p2Gif);
        animationPanel.add(p1Gif);
        animationPanel.add(healthBar1);

        updateAll();
    }

    public void fillPortions(int x) {
        JLabel [] labels = new JLabel[x];
        for (int i = 0; i < x; i ++) {
            labels[i] = new JLabel();
            animationPanel.add(labels[i]);
        }
    }

    public void refreshHealthBar(int health, int total, int pNum, int mon) {

        if (pNum == 1) {
            if (p1MonNum != mon && p1MonNum != -1) {
                p1MonNum = mon;

                health1 = health;
                total1 = total;

                healthBar1.setHealth(health);
                healthBar1.setTotal(total);

                redoHealthPanel();
            }
            else {
                p1MonNum = mon;
                healthBar1.setTotal(total);;
                while (health < health1) {

                    healthBar1.setHealth(health1);

                    redoHealthPanel();

                    health1--;
                }

                while (health > health1) {

                    healthBar1.setHealth(health1);

                    redoHealthPanel();

                    health1++;
                }
            }
        }
        else {
            if (p2MonNum != mon && p2MonNum != -1) {
                p2MonNum = mon;

                health2 = health;
                total2 = total;

                healthBar2.setHealth(health);
                healthBar2.setTotal(total);

                redoHealthPanel();

                updateAll();
            }
            else {
                p2MonNum = mon;
                healthBar2.setTotal(total);
                while (health < health2) {

                    healthBar2.setHealth(health2);

                    redoHealthPanel();

                    health2--;
                }

                while (health > health2) {

                    healthBar2.setHealth(health2);

                    redoHealthPanel();

                    health2++;
                }
            }
        }

    }

    private void redoHealthPanel () {
        animationPanel.removeAll();

        animationPanel.add(healthBar2);
        animationPanel.add(p2Gif);
        animationPanel.add(p1Gif);
        animationPanel.add(healthBar1);

        updateAll();

        try {
            TimeUnit.MILLISECONDS.sleep(waitTime);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    private String validatePokemon() {

        String answer = "";

        String tempMonNames [] = new String[6];

        boolean invalidMove = false;

        for (int i = 0; i < monPanels.length; i ++) {

            String currentName = names[i].getText();

            if (currentName.isEmpty()) {

                answer = "You must have 6 Pokemon on your team but you can have less than 4 moves";
                return answer;

            }

            for (String element : tempMonNames) {

                if (element == null) {

                    continue;

                } else if (currentName.equals(element)) {

                    answer = "You have duplicate Pokemon on your team";

                    return answer;

                }
            }

            if (!info.validPokemon(currentName)) {

                answer += "Pokemon #" + (i + 1) + " is invalid\n";

            } else {

                tempMonNames[i] = currentName;

            }

            int count = 0;

            for (int k = 0; k < moves[i].length; k++) {

                if (moves[i][k].getText().isEmpty()) {

                    count++;

                }

                if (!info.validMove(moves[i][k].getText().replace(" ", "").toLowerCase(), currentName)) {

                    answer += "Pokemon #" + (i + 1) + ", move #" + (k + 1) + " is invalid\n";
                    invalidMove = true;

                }

                if (count >= 4) {

                    answer += "Pokemon #" + (i + 1) + " has no moves\n";
                    break;

                }

            }

        }

        if (invalidMove) {

            answer += "***Please keep in mind only damaging moves without recoil are allowed, if there aren't enough for 4 moves, leave fields blank***";

        }

        return answer;

    }

    @Override
    public void actionPerformed(ActionEvent e) {

        if (validatePokemon().isEmpty()) {

            JOptionPane.showMessageDialog(null, "Confirmed" , "", JOptionPane.INFORMATION_MESSAGE);

        } else {

            JOptionPane.showMessageDialog(null, validatePokemon() , "", JOptionPane.ERROR_MESSAGE);

        }
    }

    @Override
    public void caretUpdate(CaretEvent e) {

        for (int i = 0; i < names.length; i ++) {

            if (info.validPokemon(names[i].getText()) && tempImages[i].getParent() == null) {

                ImageIcon temp = new ImageIcon(this.getClass().getResource("SpritesFront/" + names[i].getText().replace(" ", "").replace(":", "").replace("'", "").replace(".", "").replace("-", "").toLowerCase() + ".gif"));
                temp = new ImageIcon(temp.getImage().getScaledInstance((int)(temp.getIconWidth() * 1.5), (int)(temp.getIconHeight() * 1.5), Image.SCALE_DEFAULT));
                Icon icon = temp;

                imagePanels[i].remove(tempImages[i]);

                tempImages[i] = new JLabel(icon);

                imagePanels[i].add(tempImages[i]);

                updateAll();

            } else if (!info.validPokemon(names[i].getText())){

                imagePanels[i].remove(tempImages[i]);

                updateAll();

            }

        }
    }

}

This is set up for the window:
        GraphicsPanel window = new GraphicsPanel("Pokemon");
        window.setBounds(0, 0, 1440, 830);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setVisible(true);

This is where the getX() and getY() are getting called:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.*;

import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.JTextComponent;

public class AutoSuggestor {

    private final JTextComponent textComp;
    private JPanel suggestionsPanel;
    private JWindow autoSuggestionPopUpWindow;
    private String typedWord;
    private final ArrayList<String> dictionary = new ArrayList<>();
    private JTextField textField;
    private int currentIndexOfSpace, tW, tH;
    private DocumentListener documentListener = new DocumentListener() {
        @Override
        public void insertUpdate(DocumentEvent de) {
            checkForAndShowSuggestions();
        }

        @Override
        public void removeUpdate(DocumentEvent de) {
            checkForAndShowSuggestions();
        }

        @Override
        public void changedUpdate(DocumentEvent de) {
            checkForAndShowSuggestions();
        }
    };
    private final Color suggestionsTextColor;
    private final Color suggestionFocusedColor;

    public AutoSuggestor(JTextComponent textComp, ArrayList<String> words, Color popUpBackground, Color textColor, Color suggestionFocusedColor, float opacity) {
        this.textComp = textComp;
        this.suggestionsTextColor = textColor;
        this.suggestionFocusedColor = suggestionFocusedColor;
        this.textComp.getDocument().addDocumentListener(documentListener);

        setDictionary(words);

        typedWord = "";
        currentIndexOfSpace = 0;
        tW = 0;
        tH = 0;

        autoSuggestionPopUpWindow = new JWindow();
        autoSuggestionPopUpWindow.setOpacity(opacity);

        suggestionsPanel = new JPanel();
        suggestionsPanel.setLayout(new GridLayout(0, 1));
        suggestionsPanel.setBackground(popUpBackground);

        addKeyBindingToRequestFocusInPopUpWindow();
    }

    private void addKeyBindingToRequestFocusInPopUpWindow() {
        textComp.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0, true), "Down released");
        textComp.getActionMap().put("Down released", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent ae) {//focuses the first label on popwindow
                for (int i = 0; i < suggestionsPanel.getComponentCount(); i++) {
                    if (suggestionsPanel.getComponent(i) instanceof SuggestionLabel) {
                        ((SuggestionLabel) suggestionsPanel.getComponent(i)).setFocused(true);
                        autoSuggestionPopUpWindow.toFront();
                        autoSuggestionPopUpWindow.requestFocusInWindow();
                        suggestionsPanel.requestFocusInWindow();
                        suggestionsPanel.getComponent(i).requestFocusInWindow();
                        break;
                    }
                }
            }
        });
        suggestionsPanel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0, true), "Down released");
        suggestionsPanel.getActionMap().put("Down released", new AbstractAction() {
            int lastFocusableIndex = 0;

            @Override
            public void actionPerformed(ActionEvent ae) {//allows scrolling of labels in pop window (I know very hacky for now :))

                ArrayList<SuggestionLabel> sls = getAddedSuggestionLabels();
                int max = sls.size();

                if (max > 1) {//more than 1 suggestion
                    for (int i = 0; i < max; i++) {
                        SuggestionLabel sl = sls.get(i);
                        if (sl.isFocused()) {
                            if (lastFocusableIndex == max - 1) {
                                lastFocusableIndex = 0;
                                sl.setFocused(false);
                                autoSuggestionPopUpWindow.setVisible(false);
                                setFocusToTextField();
                                checkForAndShowSuggestions();//fire method as if document listener change occured and fired it

                            } else {
                                sl.setFocused(false);
                                lastFocusableIndex = i;
                            }
                        } else if (lastFocusableIndex <= i) {
                            if (i < max) {
                                sl.setFocused(true);
                                autoSuggestionPopUpWindow.toFront();
                                autoSuggestionPopUpWindow.requestFocusInWindow();
                                suggestionsPanel.requestFocusInWindow();
                                suggestionsPanel.getComponent(i).requestFocusInWindow();
                                lastFocusableIndex = i;
                                break;
                            }
                        }
                    }
                } else {//only a single suggestion was given
                    autoSuggestionPopUpWindow.setVisible(false);
                    setFocusToTextField();
                    checkForAndShowSuggestions();//fire method as if document listener change occured and fired it
                }
            }
        });
    }

    private void setFocusToTextField() {
        textComp.requestFocusInWindow();
    }

    public ArrayList<SuggestionLabel> getAddedSuggestionLabels() {
        ArrayList<SuggestionLabel> sls = new ArrayList<>();
        for (int i = 0; i < suggestionsPanel.getComponentCount(); i++) {
            if (suggestionsPanel.getComponent(i) instanceof SuggestionLabel) {
                SuggestionLabel sl = (SuggestionLabel) suggestionsPanel.getComponent(i);
                sls.add(sl);
            }
        }
        return sls;
    }

    private void checkForAndShowSuggestions() {
        typedWord = getCurrentlyTypedWord();

        suggestionsPanel.removeAll();//remove previos words/jlabels that were added

        //used to calcualte size of JWindow as new Jlabels are added
        tW = 0;
        tH = 0;

        boolean added = wordTyped(typedWord);

        if (!added) {
            if (autoSuggestionPopUpWindow.isVisible()) {
                autoSuggestionPopUpWindow.setVisible(false);
            }
        } else {
            showPopUpWindow();
            setFocusToTextField();
        }
    }

    protected void addWordToSuggestions(String word) {
        SuggestionLabel suggestionLabel = new SuggestionLabel(word, suggestionFocusedColor, suggestionsTextColor, this);

        calculatePopUpWindowSize(suggestionLabel);

        suggestionsPanel.add(suggestionLabel);
    }

    public String getCurrentlyTypedWord() {//get newest word after last white spaceif any or the first word if no white spaces
        String text = textComp.getText();
        String wordBeingTyped = "";
        text = text.replaceAll("(\\r|\\n)", " ");
        if (text.contains(" ")) {
            int tmp = text.lastIndexOf(" ");
            if (tmp >= currentIndexOfSpace) {
                currentIndexOfSpace = tmp;
                wordBeingTyped = text.substring(text.lastIndexOf(" "));
            }
        } else {
            wordBeingTyped = text;
        }
        return wordBeingTyped.trim();
    }

    private void calculatePopUpWindowSize(JLabel label) {
        //so we can size the JWindow correctly
        if (tW < label.getPreferredSize().width) {
            tW = label.getPreferredSize().width;
        }
        tH += label.getPreferredSize().height;
    }

    public void setTextField(JTextField textField) {

        this.textField = textField;

    }

    private void showPopUpWindow() {
        autoSuggestionPopUpWindow.getContentPane().add(suggestionsPanel);
        autoSuggestionPopUpWindow.setMinimumSize(new Dimension(textComp.getWidth(), 30));
        autoSuggestionPopUpWindow.setSize(tW, tH);
        autoSuggestionPopUpWindow.setVisible(true);

        //show the pop up
        autoSuggestionPopUpWindow.setLocation(textComp.getX(), textComp.getY() + textComp.getHeight());
        autoSuggestionPopUpWindow.setMinimumSize(new Dimension(textComp.getWidth(), 30));
        autoSuggestionPopUpWindow.revalidate();
        autoSuggestionPopUpWindow.repaint();

    }

    public void setDictionary(ArrayList<String> words) {
        dictionary.clear();
        if (words == null) {
            return;//so we can call constructor with null value for dictionary without exception thrown
        }
        for (String word : words) {
            dictionary.add(word);
        }
    }

    public JWindow getAutoSuggestionPopUpWindow() {
        return autoSuggestionPopUpWindow;
    }

    public JTextComponent getTextField() {
        return textComp;
    }

    public void addToDictionary(String word) {
        dictionary.add(word);
    }

    boolean wordTyped(String typedWord) {

        if (typedWord.isEmpty()) {
            return false;
        }
        //System.out.println("Typed word: " + typedWord);

        boolean suggestionAdded = false;

        for (String word : dictionary) {//get words in the dictionary which we added
            boolean fullymatches = true;
            for (int i = 0; i < typedWord.length(); i++) {//each string in the word
                if (!typedWord.toLowerCase().startsWith(String.valueOf(word.toLowerCase().charAt(i)), i)) {//check for match
                    fullymatches = false;
                    break;
                }
            }
            if (fullymatches) {
                addWordToSuggestions(word);
                suggestionAdded = true;
            }
        }
        return suggestionAdded;
    }
}

class SuggestionLabel extends JLabel {

    private boolean focused = false;
    private final JWindow autoSuggestionsPopUpWindow;
    private final JTextComponent textComponent;
    private final AutoSuggestor autoSuggestor;
    private Color suggestionsTextColor, suggestionBorderColor;

    public SuggestionLabel(String string, final Color borderColor, Color suggestionsTextColor, AutoSuggestor autoSuggestor) {
        super(string);

        this.suggestionsTextColor = suggestionsTextColor;
        this.autoSuggestor = autoSuggestor;
        this.textComponent = autoSuggestor.getTextField();
        this.suggestionBorderColor = borderColor;
        this.autoSuggestionsPopUpWindow = autoSuggestor.getAutoSuggestionPopUpWindow();

        initComponent();
    }

    private void initComponent() {
        setFocusable(true);
        setForeground(suggestionsTextColor);

        addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent me) {
                super.mouseClicked(me);

                replaceWithSuggestedText();

                autoSuggestionsPopUpWindow.setVisible(false);
            }
        });

        getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "Enter released");
        getActionMap().put("Enter released", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                replaceWithSuggestedText();
                autoSuggestionsPopUpWindow.setVisible(false);
            }
        });
    }

    public void setFocused(boolean focused) {
        if (focused) {
            setBorder(new LineBorder(suggestionBorderColor));
        } else {
            setBorder(null);
        }
        repaint();
        this.focused = focused;
    }

    public boolean isFocused() {
        return focused;
    }

    private void replaceWithSuggestedText() {
        String suggestedWord = getText();
        String text = textComponent.getText();
        String typedWord = autoSuggestor.getCurrentlyTypedWord();
        String t = text.substring(0, text.lastIndexOf(typedWord));
        String tmp = t + text.substring(text.lastIndexOf(typedWord)).replace(typedWord, suggestedWord);
        textComponent.setText(tmp);
    }
}

The textComp.getX() and textComp.getY() in the showPopUpWindow method are the ones that are giving zeros.

A: After thinking about it for a while I came up with this solution and it works for me.
int x = 0;
int y = 0;

Component currentComponent = textComp;

while (currentComponent != null) {

    x += currentComponent.getX();
    y += currentComponent.getY();

    currentComponent = currentComponent.getParent();

}

redpajama_set_name: RedPajamaStackExchange


text:
La forêt de varzea ou varzea (du portugais várzea qui signifie plaine alluviale inondable) est la forêt amazonienne qui est inondée de façon saisonnière en période de crue. En période de basses eaux, lors de l'étiage, cette zone est découverte à l'exception des igapos (mares permanentes). Ce sont des zones fertiles en raison des alluvions qui y sont régulièrement déposés et souvent mises en culture.

Les gens qui y résident, appelés les Caboclos, habitent des maisons sur pilotis (des marumbas). Ils sont principalement pêcheurs en "hiver" (période de crue) et agriculteurs éleveurs en été. La hauteur et la durée des crues varient selon la situation plus ou moins en amont des fleuves du bassin amazonien. Ainsi, au niveau de l'embouchure de l'Amazone, dans la région de Bélem, la différence maximale de hauteur des eaux ne dépasse pas le mètre. À Manaus, les pilotis peuvent atteindre une quinzaine de mètres et la période de crue dure entre trois et quatre mois. À Iquitos, au Pérou, les hauteurs de crues sont telles que les habitations sont flottantes, posées sur d'énormes rondins (mais corrélativement la durée de la crue est moindre).

Les espèces présentes appartiennent aux genres Alchornea, Ceiba, Manilkara, Ochroma, Parkia et Tessaria.

Article connexe
 Terra firme

Liens externes

 Introduction du livre Vivre dans la Fluctuance Une ethnographie sur pilotis en Amazonie brésilienne.
 Documentaire ethnographique de 22 min Région de Santarem, Brésil, État du Parà.

Forêt en Amérique du Sud
Habitat tropical

redpajama_set_name: RedPajamaWikipedia