所以我对JMapViewer(和StackOverFlow)是新手。我目前试图做的是开发一个网络的实时图形表示,其中的背景是该地区的地图。到目前为止,一切都很顺利,但有一个问题困扰着我。当我创建MapMarkerCircle并设置名称时,我希望创建一个新行,以显示其下方的信息。
如果有人以前遇到过这个问题,我会非常感谢任何帮助。
下面是出现问题的一小段代码。注意“RateCircle”扩展了“MapMarkerCircle”。
Coordinate dataPoint= new Coordinate((pmpLinks[i].getRecieverSite().getLat()+pmpLinks[i].getTransmitter().getLat())/2, (pmpLinks[i].getRecieverSite().getLon()+pmpLinks[i].getTransmitter().getLon())/2);
String rateStringName="<html>"+inRateAsString+"<br>kb/s</html>";
pmpCanopyRatePoints[i]=new RateCircle(allPMPrateLayer[i],rateStringName, dataPoint);
map().addMapMarker(pmpCanopyRatePoints[i]);
MapMarkerCircle::Paint
调用MapMarkerCircle::PaintText
,后者调用Graphics::DrawString
,这对控制字符或标记没有特殊意义。从这个示例开始,下面painttext()
的实现在第一行下面绘制了第二行。
我已经更新了这个示例,以建议一种将标记的名称和值关联起来的方法。它使用map
,将map.entry
作为参数传递给ratecircle
构造函数。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Point;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JFrame;
import org.openstreetmap.gui.jmapviewer.Coordinate;
import org.openstreetmap.gui.jmapviewer.JMapViewer;
import org.openstreetmap.gui.jmapviewer.MapMarkerCircle;
import org.openstreetmap.gui.jmapviewer.Style;
/**
* @see https://stackoverflow.com/a/38265252/230513
* @see https://stackoverflow.com/a/33857113/230513
*/
public class RateCircleTest {
private void display() {
JFrame f = new JFrame("London");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMapViewer map = new JMapViewer() {
@Override
public Dimension getPreferredSize() {
return new Dimension(320, 240);
}
};
Coordinate london = new Coordinate(51.5072, -0.1275);
map.setDisplayPosition(london, 16);
Map<String, Integer> rates = new HashMap<>();
rates.put("London", 42);
for (Map.Entry<String, Integer> entry : rates.entrySet()) {
map.addMapMarker(new RateCircle(entry, london));
}
f.add(map);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static class RateCircle extends MapMarkerCircle {
private static final int R = 12;
private Map.Entry<String, Integer> entry;
public RateCircle(Map.Entry<String, Integer> entry, Coordinate coord) {
super(null, "", coord, R, STYLE.FIXED, getDefaultStyle());
this.entry = entry;
Style style = getStyle();
style.setBackColor(Color.cyan);
style.setColor(Color.red);
}
@Override
public void paintText(Graphics g, Point position) {
super.paintText(g, position);
g.drawString(entry.getKey(), position.x + R + 2, position.y + R);
g.drawString(entry.getValue() + " kb/s", position.x + R + 2,
position.y + R + g.getFontMetrics().getHeight());
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new RateCircleTest()::display);
}
}
问题内容: This is my statement one.\n This is my statement2 我尝试了两者,但是渲染html文件时新行没有反映出来。我怎样才能做到这一点? 问题答案: 试试这个: 换行符和回车符是HTML实体Wikipedia。这样,您实际上是在分析新行(“\ n”),而不是将其显示为文本。
问题内容: 如何在JavaScript警报框中添加新行? 问题答案: 将放入新行- 作为新行的控制代码。
问题内容: 正如我已经发现的那样,可以通过执行类似的操作在一个查询中更新多行 特别感谢@Roman Pekar的明确回答。 现在,我正在尝试将这种更新与查询合并到NodeJS中的postgreSQL数据库中。 这是我的代码片段: 我没有收到错误,但是它不会更新我的表,我真的不知道这里出了什么问题。查询代码中可能存在语法错误?我只是在NodeJS pg包中更新时找不到多行查询的任何特定示例 问题答案
问题内容: 我正在将SQLAlchemy与python结合使用,并且我想更新等于此查询的表中的特定行: 我通过sql alchemy编写了此代码,但无法正常工作: 返回此错误: 我该怎么做? 问题答案: 通常,您不使用,而是设置属性:
我试图在我的文本字段中有一些预定义的文本,但是我不知道如何在单词之间添加新行。我试过了\n,但不起作用。 代码: 有人知道如何在每个单词之间添加换行符吗?我希望单词之间有一个分离,然后它会在稍后自动填充信息。
问题内容: 我已经编写了以下代码: 现在,我想插入一条新行,就像您通常要插入的那样,但是它似乎不起作用。 如何解决这个问题? 谢谢。 问题答案: 如果要获取当前操作系统(例如Windows)中使用的 换行符,可以通过以下方式获取它们 从Java7开始 或如Stewart所述,通过 您还可以使用及其方法,该方法将在字符串的末尾自动添加与OS相关的行分隔符 (BTW 也是PrintStream的实例)