小编alm*_*OSU的帖子

如何摆脱JTable/JScrollPane的边界

如果您运行下面的小样本,您将看到中心区域周围的边框.我不确定为什么会出现这种边界.

当JTable在JScrollPane中时会发生这种情况.我尝试了各种各样的东西去除它,但到目前为止没有运气.没有JScrollPane的JTable没有显示边框.

见下面的示例.TIA.

public class TestScrollPane extends JFrame {

    public static void main(String[] args) {
        JFrame frame = new TestScrollPane();
        JPanel panel = new JPanel();
        JTable table = new JTable();

        panel.setLayout(new BorderLayout());
        panel.add(new JLabel("NORTH"), BorderLayout.NORTH);
        panel.add(new JLabel("SOUTH"), BorderLayout.SOUTH);

        JScrollPane sp = new JScrollPane(table);
        // None of these have any effect
        sp.setBorder(null);
        sp.getInsets().set(0, 0, 0, 0);
        sp.setViewportBorder(null);
        sp.getViewport().setBorder(null);
        sp.getViewport().getInsets().set(0, 0, 0, 0);
        sp.getViewport().setOpaque(true);

        panel.add(sp, BorderLayout.CENTER);
        // Adding the table alone shows no border
        // panel.add(table, BorderLayout.CENTER);
        frame.add(panel);

        frame.setVisible(true);
    }

    public TestScrollPane() …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jscrollpane

36
推荐指数
3
解决办法
3万
查看次数

如何将文本置于JLabel中心?

尽管经过多次尝试,但我无法得到我想看到的结果 - 文本居中在JLabel中,而JLabel在BorderLayout中居中.我说"有点",因为窗口的右下角应该还有另一个标签"status".这里有一些代码负责:

setLayout(new BorderLayout());
JPanel area = new JPanel();
JLabel text = new JLabel(
        "<html>In early March, the city of Topeka," +
        " Kansas,<br>temporarily changed its name to Google..." +
        "<br><br>...in an attempt to capture a spot<br>" +
        "in Google's new broadband/fiber-optics project." +
        "<br><br><br>source: http://en.wikipedia.org/wiki/Google_server" +
        "#Oil_Tanker_Data_Center</html>", SwingConstants.CENTER);
text.setVerticalAlignment(SwingConstants.CENTER);
JLabel status = new JLabel("status", SwingConstants.SOUTH_EAST);
status.setVerticalAlignment(SwingConstants.CENTER);
Font font = new Font("SansSerif", Font.BOLD, 30);
text.setFont(font);
area.setBackground(Color.darkGray);
text.setForeground(Color.green);
// text.setAlignmentX(CENTER_ALIGNMENT);
// text.setAlignmentY(CENTER_ALIGNMENT);
// text.setHorizontalAlignment(JLabel.CENTER);
// text.setVerticalAlignment(JLabel.CENTER);
Font font2 = new …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jlabel htmltext

32
推荐指数
3
解决办法
12万
查看次数

阅读文本文件 - fopen与ifstream

谷歌搜索文件输入我发现了两种从文件输入文本的方法--fopen和ifstream.以下是两个片段.我有一个文本文件,包含一行我需要读入的整数.我应该使用fopen还是ifstream?

SNIPPET 1 - FOPEN

FILE * pFile = fopen ("myfile.txt" , "r");
char mystring [100];
if (pFile == NULL) 
{
    perror ("Error opening file");
}
else 
{
    fgets (mystring , 100 , pFile);
    puts (mystring);
    fclose (pFile);
}
Run Code Online (Sandbox Code Playgroud)

SNIPPET 2 - IFSTREAM

string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
    while ( myfile.good() )
    {
        getline (myfile,line);
        cout << line << endl;
    }
    myfile.close();
}
else 
{  
    cout << "Unable to open file"; 
}
Run Code Online (Sandbox Code Playgroud)

c++ fopen file ifstream

22
推荐指数
2
解决办法
6万
查看次数

枚举常量包含同一枚举类的所有枚举常量

我刚刚意识到Java中的枚举常量似乎包含了相同类型的所有枚举常量.

例如,以下代码是合法的:

enum State {
    enable, disable, deleted;
}

class Test {
    public static void main(String[] args) {
        for ( State s : State.enable.disable.values() ) {
            System.out.println(s);
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我看到输出结果是:

enable
disable
deleted
Run Code Online (Sandbox Code Playgroud)

enable常量是否包含disable常量而不是反直觉甚至不合逻辑,而常量又包含所有State枚举常数?

这种语言设计背后的可能考虑因素是什么?

java enums

22
推荐指数
2
解决办法
1173
查看次数

删除jtable中的单元格边框

我有自定义单元格渲染器,并希望删除单元格的边框.
我该怎么做?我试过setBorder但它不起作用.

这是我的渲染器代码:

public class MyTableCellRenderer extends DefaultTableCellRenderer {

    private static final long serialVersionUID = -1195682136616306875L;

    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        Component c = super.getTableCellRendererComponent(table, value,
                isSelected, hasFocus, row, column);
        if (!isSelected) {
            if (row % 2 == 0 && row != 1) {
                c.setBackground(new Color(255, 255, 150));
            } else {
                c.setBackground(Color.WHITE);
            }
        } else {
            c.setBackground(new Color(255, 230, 255));
        }
        c.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
        return c;
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing border jtable borderless

21
推荐指数
1
解决办法
2万
查看次数

JavaFx:按钮边框和悬停

我使用的是Java 8.我有工具栏和按钮.

我想实现以下内容:

  • 在工具栏上的通常状态(没有鼠标悬停)时,只能看到按钮标签(没有背景,也没有边框).
  • 当用户鼠标悬停在按钮上时,必须看到常用按钮.

怎么做通过CSS?

css java javafx java-8

16
推荐指数
3
解决办法
3万
查看次数

旋转Java Graphics2D矩形?

我到处搜寻,我找不到答案.
如何在java中旋转Rectangle?

这是我的一些代码:

package net.chrypthic.Space;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Space extends JPanel implements ActionListener{
    Timer time;
    public Space()
    {
        setVisible(true);
        setFocusable(true);
        addMouseMotionListener(new ML());
        addMouseListener(new ML());
        addKeyListener(new AL());
        time=new Timer(5, this);
        time.start();
    }
    public void paint(Graphics g)
    {
        super.paint(g);
        Graphics2D g2d = (Graphics2D)g;
        g2d.setColor(Color.WHITE);
        Rectangle rect2 = new Rectangle(100, 100, 20, 20);

        g2d.draw(rect2);
        g2d.fill(rect2);
    }
    public void actionPerformed(ActionEvent ae) {
        repaint();
    }
    public class AL extends KeyAdapter
    {
        public void keyPressed(KeyEvent e) {
        }

        public void keyReleased(KeyEvent …
Run Code Online (Sandbox Code Playgroud)

java swing rotation graphics2d

15
推荐指数
3
解决办法
8万
查看次数

为什么java.awt.Graphics.drawLine特别慢?

我正在尝试实现以下'网格'布局.

CompleteImage

该类正在扩展java.awt.Canvas,并在paint函数中绘制这些形状(或行).为什么选择帆布?点击这里,尝试初始化做类似的事情.

更新了MCVE代码以获取上述"布局":

import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class SO_MCVE extends JPanel {

    private DrawingCanvas _drawingCanvas = null;

    private JButton repaintBtn;

    public SO_MCVE() {
        super(new BorderLayout());

        _drawingCanvas = new DrawingCanvas();
        _drawingCanvas.setSize(new Dimension(600, 600));

        JLabel repaintLabel = new JLabel(
                "<html><div style=\"text-align: center;\">" +
                "REPAINT</html>"); …
Run Code Online (Sandbox Code Playgroud)

java swing graphics2d

13
推荐指数
1
解决办法
1457
查看次数

合并重叠间隔

问题:给定任意顺序的一组时间间隔,将所有重叠间隔合并为一,并输出应该只具有互斥间隔的结果.为简单起见,将间隔表示为整数对.例如,让给定的一组区间为{{1,3},{2,4},{5,7},{6,8}}.区间{1,3}和{2,4}彼此重叠,因此它们应合并成{1,4}.类似地,{5,7}和{6,8}应该合并并成为{5,8}

编写一个函数,为给定的一组区间产生一组合并区间.

我的代码:

import java.util.*;
import java.lang.*;
import java.io.*;

class Interval 
{
    int start;
    int end;

    Interval() {
        start = 0;
        end = 0;
    }

    Interval(int s, int e) 
    {
        start = s;
        end = e;
    }
}

class Ideone
{
    public ArrayList<Interval> merge(ArrayList<Interval> intervals) {

        if(intervals.size() == 0)
            return intervals;
        if(intervals.size() == 1)
            return intervals;

        Collections.sort(intervals, new IntervalComparator());

        Interval first = intervals.get(0);
        int start = first.start;
        int end = first.end;

        ArrayList<Interval> result = new ArrayList<Interval>();

        for(int i = 1; …
Run Code Online (Sandbox Code Playgroud)

java arrays merge compiler-errors class

11
推荐指数
1
解决办法
1万
查看次数

Python:询问两个对象是否是同一个类

我有一类动物和其他动物从它继承(eq Sheep,Wolf).
我想检查两个对象是否是同一个类,如果是,它应该创建同一个类的新对象,如果不是,它们就是在战斗.

if x and y same object:
    #create new object
else:
    #fight
Run Code Online (Sandbox Code Playgroud)

有没有比这更好的方法isinstance
因为,会有更多的动物而不仅仅是2,我认为这样做效率不高:

if isinstance(x, Wolf)
    # ...
Run Code Online (Sandbox Code Playgroud)

python polymorphism instance

10
推荐指数
1
解决办法
4708
查看次数