我想读一本关于数据结构和算法的书,但我想知道离散数学中是否有任何特定的主题被认为是理解数据结构书中提供的材料的先决条件.
PS我是自学成才的程序员; 我没有上过任何计算机科学课程.
我正在 Swing/AWT 中制作自己的类图应用程序,但我停在了这个功能上:
非常感谢一般指南或示例代码
在核心Java书中,它说
getStringBounds方法返回的矩形的宽度是字符串的水平范围.矩形的高度是上升,下降和前导的总和.矩形的原点位于字符串的基线处.矩形的顶部y坐标是负的.因此,您可以获得字符串宽度,高度和上升,如下所示:
double stringWidth = bounds.getWidth();
double stringHeight = bounds.getHeight();
double ascent = -bounds.getY();
Run Code Online (Sandbox Code Playgroud)
当说矩形的原点位于字符串的基线时,作者的意思是什么,而顶部的y坐标是上升?
字符串的边界矩形从哪里开始?
用测试字符串我得到以下内容:
w: 291.0
h: 91.265625
x:0.0
y:-72.38671875
descent: 15.8203125
leading: 3.0585938
Run Code Online (Sandbox Code Playgroud)
这意味着矩形原点位于前导而不是基线,我对此是否正确?
为什么我的JComponent没有显示在背景JFrame之上?
请检查以下代码:
class CounterFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private MyPanel myComponent = new MyPanel();
private JLabel contentPane = new JLabel(new ImageIcon(getClass()
.getResource("background/2.jpg")));
CounterFrame() {
contentPane.setLayout(new GridBagLayout());
setContentPane(contentPane);
add(myComponent);
}
}
class MyPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private Font myFont;
private String target;
private String raised = "200000";
private Image background;
public MyPanel() {
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D …
Run Code Online (Sandbox Code Playgroud) 在Core Java Volume1一书中,有一个警告说:
注意:移位运算符的右侧参数以模32减小(除非左侧是长的,在这种情况下,右侧减少模64).例如,1 << 35的值与1 << 3或8相同.
这到底是什么意思?还有为什么1变为8,而不是在35左移后变为0?
非常感谢
编程到那个角落我没有问题,但我想知道这个选择背后的原因.
我正在尝试使用以下方式获取用户主机,IP和端口:
request.getRemoteHost()
request.getRemoteAddr()
request.getRemotePort()
Run Code Online (Sandbox Code Playgroud)
但我得到:
主机: 0:0:0:0:0:0:0:1
IP:地址空
端口: 51111
如何获取正确的IP地址,注意我们的网络IP以10.100.xx开头
非常感谢.
在语言规范中它说:
局部变量在使用前必须设置.虽然所有其他变量都自动初始化为默认值,但Java编程语言不会自动初始化局部变量,以避免屏蔽编程错误.
什么是完全掩盖编程错误在Java?
解释这一点的一个例子很好.
谢谢