私のプログラムは、データベース内のデータ(株名と価格)がYahoo Financeのデータ(株名と価格)と一致したときにユーザーに警告します。HarryJoyの助けを借りて、ポップアップ通知を実装することができます。
問題は、画面上のポップアップの場所がデータベースループ(int db)に基づいていることです。データが一致しなくてもフレームがポップします。
データベースデータ=YahooFinanceデータの場合にのみフレームをポップアップするようにカウンターまたは何らかの方法を設定するにはどうすればよいですか?また、通知パネルがメインフレームの後ろにあるように見えます。パネルをメインフレームの上に表示するにはどうすればよいですか?
十分な情報を提供できたと思いますが、それでも不明な点がある場合はお問い合わせください。任意のガイダンスをいただければ幸いです。ありがとう!
データベース内(コードサンプルを使用して私の説明を順番に表示するだけです。以下のソースコード)。
Object 1 = match
Object 2 = doesn't match (hence there's a gap)
Object 3 = match
Object 4 = match
スクリーンショット:
コード:
for (int db=0; db<= rowCount; db++)
{
Object popSymbol = table.getModel().getValueAt(db, 0);
String popupSymbol = popSymbol.toString();
Object popValue = table.getModel().getValueAt(db, 1);
String str = popValue.toString();
double popStockValue = Double.valueOf(str).doubleValue();
String stockNameDB = popupSymbol;
StockPara stock = YahooStock.getInstance().getStockPrice(stockNameDB);
double stockPriceDB = Math.round(stock.getPrice());
final JFrame popUpFrame;
final JPanel popupPanel;
if (stockPriceDB == popStockValue)
{
String header = "Stock: " + stock.getTicker() + " is now @ " + stock.getPrice();
String message = "";
popUpFrame = new JFrame();
popUpFrame.setSize(320,90);
popUpFrame.setUndecorated(true);
popUpFrame.getContentPane().setLayout(null);
popupPanel = new JPanel();
popupPanel.setBorder(new LineBorder(new Color(0, 0, 0)));
popupPanel.setBounds(0, 0, 320, 90);
getContentPane().add(popupPanel);
popupPanel.setBackground(new Color(255, 255, 224));
popupPanel.setLayout(null);
popUpFrame.add(popupPanel);
// Other labels, images, etc.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Insets toolHeight = Toolkit.getDefaultToolkit().getScreenInsets(popUpFrame.getGraphicsConfiguration());
popUpFrame.setLocation(screenSize.width - popUpFrame.getWidth(), screenSize.height - toolHeight.bottom - (popUpFrame.getHeight() * (db+1)));
}
}