在这个SSCCE代码中:
这种方法有效
label.setForeground(Color.GREEN);
但是下一个方法不起作用!
label.setBackground(Color.BLUE);
import java.awt.*;
import javax.swing.*;
public class LabelColorTest extends JPanel
{
static JLabel label;
JPanel panel;
public LabelColorTest()
{
label = new JLabel();
label.setVerticalAlignment(JLabel.CENTER);
label.setHorizontalAlignment(JLabel.CENTER);
label.setText("Hello world");
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(label, BorderLayout.CENTER);
label.setForeground(Color.GREEN); //HERE
label.setBackground(Color.BLUE); //HERE
this.setLayout(new BorderLayout());
this.add(panel);
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Hellow world");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 250);
frame.add(new LabelColorTest(), BorderLayout.CENTER);
frame.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
UIManager.put("swing.boldMetal", …Run Code Online (Sandbox Code Playgroud) 我知道有很多问题,我也读过这个页面.但是,我仍然对确切的选择感到困惑.
如果我有一部运行Android 2.3.6的手机
我知道Minimum Required SDK应该是我的应用支持的Android的最低版本.因此,例如,我会选择Android 2.2或小于该值Android 1.5
令人困惑的部分Target SDK和Compile with
我在下面安装了以下内容:( Android 2.3.6SDK管理器中没有)
Android 4.2.2(API 17)
Android 3.0(API 11)
Android 2.3.3(API 10)
Android 2.2(API 8)
是Target SDK应设置为这是最大的Android 4.2.2,不管是什么我的手机使用; 这是Android 2.3.6?
选择Android 4.2.2将涵盖下面的所有手机?是对的吗?
要么
它应该设置为我的手机的确切/最接近的值.这是可用的Android 2.3.3?但不要超过我的手机Android 2.3.6
是Compile with必须设置为最大值Android 4.2.2还是什么?
(更新的问题)
首先,我认为这"\n"相当于System.getProperty("line.separator")
我写了一些与Strings一起使用的方法,其中一些方法检查是否存在新行
if (string.charAt(i) == '\n') {//do something;}
但我注意到检查"\n"与添加的新行不匹配System.getProperty("line.separator")
这是一个SSCCE来证明我的主张!:
描述:
两串相同的文字; 一个alpha_String使用添加了新行"\n",另一个beta_String添加了新行System.getProperty("line.separator")
有一个名为的方法String removeExtraNewLines(String)用于删除String中的任何额外新行并将其返回; 正如其标题所示.使用此方法过滤了两个字符串.
这两个按键buttonAlpha和buttonBeta每一个设置的文本JTextArea与过滤字符串
你会注意到方法捕获/匹配并删除额外的新行, alpha_String但不要执行相同的操作beta_String
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class NewLineTest extends JPanel
{
JPanel buttonPanel;
JPanel textAreaPanel;
JButton buttonAlpha;
JButton buttonBeta;
JTextArea textArea;
String n = "\n";
String s = System.getProperty("line.separator");
String alpha_String; …Run Code Online (Sandbox Code Playgroud) 我是Java JDBC的新手,并开发了小型数据库应用程序.我正在学习
O'Reilly - 使用JDBC和Java第2版进行数据库编程.
是con.rollback()有效果只有在con.commit没有成功?
实际上我猜con.rollback()即使con.commit()成功也会产生影响.这意味着将其用作" 撤消 "动作.
我成功con.rollback()后试着打电话con.commit(),但是我没猜到.好吧/预期呢?
这个例子来自我上面提到的那本书:
con.rollback()被注释掉了.它接近尾声con.close().尝试取消注释.成功con.rollback()后不回滚东西con.commit().
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class UpdateLogic
{
public static void main(String args[])
{
Connection con = null;
try
{
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
String url = "jdbc:mysql://localhost:3306/Company";
Statement s;
con = DriverManager.getConnection(url, "root", "");
con.setAutoCommit(false); // make sure auto commit is off!
s = con.createStatement();// …Run Code Online (Sandbox Code Playgroud) 我想让JOptionPane.showMessageDialog消息显示出来
例如,这将在作为参数提供的JFrame的中心显示消息 thisFrame
JOptionPane.showMessageDialog(thisFrame, "Your message.");
Run Code Online (Sandbox Code Playgroud)
这将在屏幕中心显示与任何JFrame无关的消息.
JOptionPane.showMessageDialog(null, "Your message.");
Run Code Online (Sandbox Code Playgroud)
我想要的是在任何我想要的地方设置消息的位置
我想要的是设置消息相对于JFrame的位置(不在JFrame的中心)
怎么样?
我想控制哪个按键属于哪个按键Jcomponent.我甚至想知道如何删除与a关联的默认击键,Jcomponent并将其替换为其他喜欢的击键.
我按照这个oracle 教程,它给出了一个JButton的例子,我尝试了它并且它工作正常,但是当我用JComboBox尝试它时它不起作用!
我试图删除SPACE密钥,这是阻止JComponent响应SPACE按下
我用这段代码删除了SPACE密钥:
firstButton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
Run Code Online (Sandbox Code Playgroud)
JComboBox也是一样
sizesComboBox.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
Run Code Online (Sandbox Code Playgroud)
但是不起作用,它(JComboBox)仍然响应SPACE密钥
为此firstButton,我删除了SPACE印刷机的效果; 我添加了键F,所以firstButton当你按下F键盘上的键时,按下它,蚂蚁不响应SPACE(意图).请注意,F即使firstButton没有焦点也会发生按下(JComponent.WHEN_IN_FOCUSED_WINDOW)
这是一个显示我的示例的SSCCE代码:
注意:我故意没有将上面的代码行添加到第二个按钮"secondButton",所以它仍然SPACE默认响应.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class KeyStrokeTest extends JPanel
{
JPanel widgetPanel;
JPanel textAreaPanel;
JButton firstButton;
JButton secondButton;
JTextArea textArea;
JComboBox<Integer> sizesComboBox;
public …Run Code Online (Sandbox Code Playgroud) 我试图将组件添加到JPanel,然后将此面板放入JScrollPane,然后将JScrollPane放入JOptionPane.
问题:只添加了19行组件.有一个for循环确定组件的行数,如果将条件计数器更改为19或更小,则将显示所有这些.
这是问题的SSCCE
import java.awt.Dimension;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class DynamicGroupLayout extends JPanel
{
JButton addRecordButton;
JTextField[] FieldsArray;
JLabel[] LabelsArray;
GroupLayout layout;
JScrollPane scrollPane;
public DynamicGroupLayout()
{
addRecordButton = new JButton("add record");
layout = new GroupLayout(this);
this.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
scrollPane = new JScrollPane(this);
scrollPane.getVerticalScrollBar().setUnitIncrement(16);
scrollPane.setPreferredSize(this.getPreferredSize());
setTextFields();
showDialog();
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(400, 500);
}
private void setTextFields()
{
int num = 30; //If …Run Code Online (Sandbox Code Playgroud) 如果我使用“存储过程”文件夹中的 Visual Studio Server Explorer 定义存储过程myStoredProcedure,那么我会转到.edmx更新模型。
我可以用那个myStoredProcedure在后面的代码中使用它,并且可以被 IntelliSense 检测到,并且工作正常。
当我myStoredProcedure从数据库和.edmx模型中删除时。它仍然被 IntelliSense 检测到。即使它在服务器资源管理器 ->“存储过程”文件夹中也没有任何痕迹.emdx即使它在服务器资源管理器 ->“存储过程”文件夹和“存储过程/函数”文件夹
使用时不会显示编译错误,但会显示运行时错误(当然是预期的)。
函数 import 'DataEntities.myStoredProcedure' 无法执行,因为它未映射到存储函数。
myStoredProcedure如果我在数据库->服务器资源管理器->“存储过程”中再次重新定义,并更新.edmx模型。IntelliSense 检测到两个:
myStoredProcedure -> 这是旧的,会导致运行时错误。 myStoredProcedure1-> 这是新的,工作正常。那么如何正确地从中删除存储过程DataEntities.edmx呢?
我正在写一个小型物理应用程序.我打算做的是进行数字舍入.问题是它不是一个固定的舍入,而是一个取决于十进制数值的变量舍入.我将解释这个问题.
总是使用半上舍入.
21.1521421056变为21.15214
34.1521451056变为34.15215
如果结果只包含十进制数字,则:
如果前五位数字包括非零数字,则保留它们.
0.52131125变为0.52131
0.21546874变为0.21547
0.00120012变为0.0012
如果前五位数字都是零位数0.00000,则前往包含非零数字的前五位数字.
0.0000051234变为0.0000051234
0.000000000000120006130031变为0.00000000000012001
我需要在工作时玩这个四舍五入,BigDecimal因为这是我需要的要求.
只是; 我有一个JPanel里面的JScrollPane;
正如所料; JScrollPane默认情况下会监听,MouseWheelEvent以便在滚轮旋转时以及光标悬停在滚轮上时滚动效果很好JPanel.
但在那之后; 我刚刚更新,JPanel以便它实现MouseWheelListener,我为JPanel自己添加了这个鼠标滚轮监听器.
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.isControlDown()) {
if (e.getWheelRotation() < 0) {
System.out.println("mouse wheel Up");
} else {
System.out.println("mouse wheel Down");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在JPanel响应这个实施时都; 在Ctrl被按下和车轮旋转且当光标悬停在JPanel.但是默认行为JScrollPane却意外丢失了!
当我在光标悬停在JPanel滚动时旋转滚轮JScrollPane没有响应!
看起来; 这个实现MouseWheelListener打破了默认的a JPanel.
所以; 如何实现MouseWheelListener为JPanel不破坏它的默认实现?
java ×8
swing ×5
jscrollpane ×2
android ×1
colors ×1
commit ×1
decimal ×1
jcombobox ×1
jdbc ×1
joptionpane ×1
jpanel ×1
key-bindings ×1
keystroke ×1
layout ×1
mousewheel ×1
newline ×1
position ×1
rollback ×1
rounding ×1
sdk ×1