私はしばらくの間苦労しており、解決策を見つけることはできませんでした。私は、ユーザがPGraphicsオブジェクトの横に表示されている特定のマーカーの上にマウスを置いたときに、ツールチップ(テキストを含む色の異なる長方形のボックス)を表示しようとしています。これはjavaでプログラムされ、JavaアプレットとしてPAppletクラスを使用して実行されます。PGraphicsのテキスト(ツールチップ)の表示が画像の上に文字化けして表示されます
問題は、すべての画像が他の画像の上にとどまるわけではないため、テキストがはっきりと見えないことです。色は変更され、ツールチップの色に保存されますが、他のマーカーのエッジは依然として上にとどまります。ここ
は、コードの一部は、より良い私がやろうとしていますかを説明することです。
// Common piece of drawing method for markers;
// Note that you should implement this by making calls
// drawMarker and showTitle, which are abstract methods
// implemented in subclasses
public void draw(PGraphics pg, float x, float y) {
// For starter code just drawMaker(...)
if (!hidden) {
drawMarker(pg, x, y);
if (selected) {
showTitle(pg, x, y); // You will implement this in the subclasses
}
}
}
@Override
public void drawMarker(PGraphics pg, float x, float y) {
// TODO Auto-generated method stub
pg.pushStyle();
// IMPLEMENT: drawing triangle for each city
pg.fill(150, 30, 30);
pg.triangle(x, y-TRI_SIZE, x-TRI_SIZE, y+TRI_SIZE, x+TRI_SIZE, y+TRI_SIZE);
// Restore previous drawing style
pg.popStyle();
}
public void showTitle(PGraphics pg, float x, float y)
{
// TODO: Implement this method
pg.pushStyle();
pg.fill(255, 255, 202);
pg.rect(x+TRI_SIZE+1, y-TRI_SIZE, 150, 15);
pg.textAlign(PConstants.LEFT, PConstants.CENTER);
pg.fill(0,0,0);
pg.text(getCity()+", " + getCountry() + ", " + getPopulation(), x+TRI_SIZE+2, y);
// Restore previous drawing style
pg.popStyle();
}
保証するために表示されないためにいくつかのマーカーまたは別の方法のエッジを削除することが可能であることを常にツールチップ上にとどまる?事前に感謝します